【发布时间】:2016-12-23 12:26:42
【问题描述】:
我遇到了 ArrayList 的问题。我正在使用以下方法填充 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);
}
现在我只想添加一次重复的对象。但是当我发现重复的 id 时,我需要将百分比值相加并将其合并为一个。所以新数组如下所示:
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);
}
这意味着我们有 3 个 id 为 1 的重复对象,在新数组中,我们需要对所有具有相同 id 的百分比值求和,并将其视为一个对象。所以我们的新数组列表就是这样构建的。 但我不知道我怎么能弄清楚这个问题。请帮帮我。
【问题讨论】:
-
想想哪个 Collection 实现可能更适合这个目的。提示:哪个实现不允许重复?
标签: java android sorting arraylist collections