2016-03-26 12 views
1

月ごとにソートされた十二支のリストを含むウェブページがあります("Aries", "March 21 - April 19"),("Taurus", "April 20 - May 20"), ("Gemini", "May 21 - June 20"),("Cancer", "June 21 - July 22") ..... お気に入りにいくつかの星座を追加するオプションがあり、お気に入りの看板はソート順で最初に表示されます。残りの黄道帯は、ソート順でお気に入りの後にもリストされます。例えばのために 私はUI月ごとにソートされた星座を確認してください

("Taurus", "April 20 - May 20"),("Libra", "September 23 - October 22"),("Aquarius", "January 20 - February 18") 

経由お気に入りに以下の兆候を追加し、UIに

"Taurus", "April 20 - May 20" 
"Libra", "September 23 - October 22" 
"Aquarius", "January 20 - February 18" 

"Aries", "March 21 - April 19" 
"Gemini", "May 21 - June 20" 
"Cancer", "June 21 - July 22" 
"Leo", "July 23 - August 22" 
"Virgo", "August 23 - September 22" 
"Scorpio", "October 23 - November 21" 
"Capricorn", "November 22 - December 21" 
"Pisces", "February 19 - March 20" 

私の主な目的は追加お気に入りはmonth.Alsoによってソートされていることを確認することです、次のように表示されます。残りの十二宮はまた、月ごとにソートされています。 とxmlファイルからソートされた月を確認します。お気に入りにいくつかの十二宮を追加した後、私は十二指腸のリストを含むxml応答を得て、 "3月21日〜4月19日"の十二支の記号を取得するXMLを解析しています それを地図に保存する。

Map<String,String> ZodiacMap = new HashMap<String,String>();  

好きなzodiacsは私が好きな干支を確認する必要があり、マップからzodiacs

zodiacMap1.put("Aries", "March 21 - April 19"); 
zodiacMap1.put("Gemini", "May 21 - June 20"); 
zodiacMap1.put("Cancer", "June 21 - July 22"); 
zodiacMap1.put("Leo", "July 23 - August 22"); 
zodiacMap1.put("Virgo", "August 23 - September 22"); 
zodiacMap1.put("Scorpio", "October 23 - November 21"); 
zodiacMap1.put("Capricorn", "November 22 - December 21"); 
zodiacMap1.put("Pisces", "February 19 - March 20"); 

をremaning

zodiacMap1.put("Taurus", "April 20 - May 20"); 
zodiacMap1.put("Libra", "September 23 - October 22"); 
zodiacMap1.put("Aquarius", "January 20 - February 18"); 

を追加remining干支を確認するためにも、月によって並べ替えられていますが、月によって並べ替えられています。

どのようにかまわないのですか?

答えて

3

これを実行する方法は数多くあります。ここに一つの例があります。

  • 名、値の例:(開始日の) "ジェミニ"
  • 月、たとえば値:5(月用)
  • テキスト

    フィールドを持つZodiacと呼ばれるクラスを作成します。例えば、値が「5月21日から6月20日まで」

はまた、彼らの.month分野でZodiacオブジェクトを比較するであろう、Comparator<Zodiac>を実装します。例えば

Comparator<Zodiac> byMonthComparator = new Comparator<>() { 
    int compare(Zodiac o1, Zodiac o2) { 
     return Integer.compare(o1.month, o2.month); 
    } 
} 

は、先ほど作成したカスタムコンパレータを使用して、SortedSetZodiacインスタンスを置きます。そのようなセットのアイテムは月ごとにソートされます。例えば

:uは私はXMLレスポンスから作成zodiacMap1のソート順序を確認することができると思い提供ロジックを使用して

SortedSet<Zodiac> all = new TreeSet<>(); 
all.add(new Zodiac("Gemini", 5, "May 21 - June 20"); 
all.add(...); 
... 
+0

???また、列挙型を使用する方法もありますか? – Psl

+0

これらのソートされたセットのうちの2つを、「静的で完全な」もの12個と、お気に入りのために空になるものの1つを使用できます。すべてのfavsを列挙して表示するには、フルセットのすべてのエントリをループし、favsのメンバーでない場合はエントリを表示します –

関連する問題