ArrayListに問題があります。私は次の方法でArraylistを満たしています。JavaがArrayListからオブジェクトの重複を削除して一意にします
private void fillData() {
mArrayList = new ArrayList<>();
DemoTestBean bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test1";
bean.percentage = 20;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test2";
bean.percentage = 30;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test3";
bean.percentage = 50;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "2";
bean.name = "Test4";
bean.percentage = 40;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "4";
bean.name = "Test5";
bean.percentage = 55;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "5";
bean.name = "Test6";
bean.percentage = 25;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "6";
bean.name = "Test7";
bean.percentage = 60;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "6";
bean.name = "Test8";
bean.percentage = 40;
mArrayList.add(bean);
}
ここでは、重複オブジェクトを1回だけ追加したいと思います。しかし、重複IDが見つかると、パーセンテージの値を合計して1にする必要があります。だから、新しい配列は、以下のように似てます:
private void fillData() {
mArrayList = new ArrayList<>();
DemoTestBean bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test1";
bean.percentage = 100;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "2";
bean.name = "Test2";
bean.percentage = 40;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "4";
bean.name = "Test3";
bean.percentage = 55;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "5";
bean.name = "Test4";
bean.percentage = 25;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "6";
bean.name = "Test5";
bean.percentage = 100;
mArrayList.add(bean);
}
我々は、ID 1を持つ3つの重複オブジェクトを持っているし、新しい配列に、我々は同じIDを持つすべてのパーセント値の合計と、1つのオブジェクトとしてそれを考慮する必要がありますことを意味します。だから私たちの新しいarraylistはこのように構築されます。 しかし、私はこの問題をどのように把握できるのか分かりません。私を助けてください。
どのコレクション実装がその目的に適しているかも考えてください。ヒント:重複を許可しない実装はどれですか? –