PersonとPersonというクラスがあり、名前、年齢帯などの詳細があります。
年齢間隔は{0-5、6-10、11-30、31-45、46-50、50-100、100-110}です。Javaで数値の文字列の間隔を並べ替える
私は、name
、ageBand
の文字列間隔を持つPersonクラスを持っています。これはパラメータ化されたコンストラクタ、getters、settersです。
class TestAgeBand {
public static void main(String args[]) {
ArrayList<Person> person = new ArrayList<Person>();
Person p1 = new Person("Mike1", "0-5");
Person p2 = new Person("Mike2", "6-10");
Person p3 = new Person("Mike3", "11-30");
Person p4 = new Person("Mike4", "31-45");
Person p5 = new Person("Mike5", "50-100");
Person p6 = new Person("Mike6", "46-50");
Person p7 = new Person("Mike7", "100-110");
person.add(p1);
//adding all persons to list.
}
}
class Person {
String name;
String ageBand; //say it is string "0-50" which i pass in constructor while creating a person.
//getters
//setters
}
は、ここで私は間隔をソートする私のコードでやっているものです。 私は、間隔をあけて人を並べ替える必要があります。 私はTreemapを使って区間をソートしています。
Map<String, Person> ageBandMap = new TreeMap<String, Person>(){
for(Person p: person) {
ageBandMap.put(p.ageBand, p.name);
}
}
私は間隔キーセットを印刷するとき、私が取得
出力:
[0-5、100-110、11-30、31-45、46-50、50- 100,6-10]
これは私が必要としないものです。
[0-5、6-10、11-30、31-45、46-50、50-100、100-110]
コードのコメントから出て、それがために値する問題に重要な非コード情報のほとんどを取得してください。 –
年齢の範囲を2つのフィールドに分割したい場合があります。次に比較するのが簡単です。 –
実際、@MuratKとは何ですか?そしてそれらを両方とも***の***、すなわち 'int'フィールドにします。 int表現ではなく、数値の文字列表現をソートしようとしています。 –