Javaで、コレクションを、特定の順にソートしたいと思っています。
下記のソースにて、AクラスのNoフィールドに入っている数字を並び替えたいと考えています。
Noでソートした時に、0を最後にし、それ以外は昇順ソートしたいと考えております。
簡単にできる方法はございますでしょうか?
java
1class A { 2 3 Integer no; 4 String name; 5 6 A(Integer no, String name) { 7 this.no = no; 8 this.name = name; 9 } 10} 11 12class Test{ 13 14 public static void main(String[] args){ 15 16 List<A> list = new ArrayList(); 17 18 list.add(new A(0, "みかん")); 19 list.add(new A(3, "りんご")); 20 list.add(new A(1, "なし")); 21 list.add(new A(2, "ばなな")); 22 23 24 // ソート処理 25 // 1.なし 26 // 2.ばなな 27 // 3.りんご 28 // 0.みかん 29 30 } 31 32}
SQLのORDER BY で記述すると下記のような感じです。
sql
1 2ORDER BY CASE no when 0 then 2 else 1 end
大変、お手数をおかけしますが、ご教授頂けると幸いです。
自分で調べてみましたか?
JAVA リスト ソートでそれなりのものが出てきますけど
回答3件
あなたの回答
tips
プレビュー