2016-05-04 4 views
0

クラスVのオブジェクトのリストがあり、同じクラスVの新しいオブジェクトを作成したい。リスト内のオブジェクトのいくつかのプロパティはリスト全体で同じであり、値。私は次のように私がリストを持っているリスト<V>をJavaを使用して新しいオブジェクトVに変換する

Class Sample { 
    Integer someId; // which is not unique 
    String someString; // Not unique 
    Date date; 
    BigDecimal value; 
} 

、彼らは、異なる値を持つプロパティは、たとえば総括とオブジェクトV.

に設定しなければならないようコモンズ特性を有する新しいオブジェクトVを作成したいです。

Sample s1 = new Sample(1, "1", 20151231, 10.10); 
Sample s2 = new Sample(1, "1", 20151231, 20.10); 

は、私がどのように私はこれを達成することができます

new Sample(1, "1", 20151231, 10.10 + 20.10); 

などの値を持つ新しいサンプル・オブジェクトをしたいですか?

+0

詳しい情報のようないくつかのものが必要とされています。特定のプロパティに共通の値があると仮定していますか、またはリストを分析して共通の値を持つプロパティを判別していますか?リスト内のすべてのオブジェクトが共通プロパティの値と同じでない場合はどうなりますか? – VGR

+3

サンプルをどのようにグループ化しますか?イド?ストリング?日付? 3人全員? – Tunaki

+0

'someString'や' date'が違うとどうなりますか?それらのすべてを集計してほしいですか? – Holger

答えて

0

はこの

public static void main(String... args) { 
    Sample s1 = new Sample(1, "1", Calendar.getInstance().getTime(), new BigDecimal(10.10)); 
    Sample s2 = new Sample(1, "1", Calendar.getInstance().getTime(), new BigDecimal(20.20)); 

    List<Sample> samples = new ArrayList<>(); 
    samples.add(s1); 
    samples.add(s2); 



    Optional<Sample> result = samples.stream().reduce((sa1,sa2)->new Sample(1, "1", Calendar.getInstance().getTime(),sa1.getValue().add(sa2.getValue()))); 
    System.out.println(result.get()); 
} 
関連する問題