いつもお世話になっております。
Java8を利用しております。
JavaのListにはいったオブジェクトを、並び替えながら重複を削除したいと考えております。
forを利用して、ベタに書いてやればできるのですが、ラムダ式を利用してシンプルにかけないか、
試行錯誤しております。
下記はサンプルなのですが、TestBeanがListに複数格納されているとします。
プロパティ、nameとcolorは、項目としては重複しているのですが、yyyyMMddのみ値が違います。
listをsortしつつ、重複項目を削除して、listを再作成したいと考えております。
自分でも試しているのですが、思った通りのコードが書けずに苦戦しております。
そもそもの話になってしまいますが、streamを利用し、下記のような結果を出力することは可能なのでしょうか?
初歩的な質問で、申し訳ございませんが、ご教授いただけると幸いです。
Java
1class TestBean { 2 3 public TestBean(name, color, yyyyMMdd) { 4 this.name = name; 5 this.color = color; 6 this.yyyyMMdd = yyyyMMdd; 7 } 8 public Integer name; 9 public String color; 10 public Integer yyyyMMdd; 11 12}
Java
1 2class Test{ 3 4 public static void main(String[] args){ 5 6 List list = new ArrayList<TestBean>(); 7 list.add(new TestBean("yamada","red",20150101); 8 list.add(new TestBean("yamada","rad",20160103); 9 list.add(new TestBean("saito","blue",20160213); 10 list.add(new TestBean("saito","blue",20160311); 11 list.add(new TestBean("saito","blue",20160310); 12 13 list.stream()..... 14 // なんらかの処理 15 16 } 17} 18
▼結果
yamada, red, 20160103 saito, blue, 20160311
回答1件
あなたの回答
tips
プレビュー