【发布时间】:2016-03-07 10:37:55
【问题描述】:
我认为这是一个非常基本的问题,应该有解决方案,但我没有找到任何解决方案。我想我需要更多术语方面的帮助,我应该查找哪个术语来了解我的问题,但我非常感谢任何帮助。
无论如何,我想实现以下内容:
我有一个对象列表。每个对象都是下面的 ExampleClass 的形式:
public class ExampleClass {
private String name;
private Double firstDouble;
private Double secondDouble;
+ constructor and a bunch of methods
}
基本上,我有一个名称变量和一组与 ExampleClass 的每个实例相关联的数字。 name 变量不是 id,因此列表中可能有多个 ExampleClasses 具有相同的名称,它们都有不同的编号。我想做的是从此列表中创建一个“摘要”:
- 过滤掉 ExampleClass 的每个同名实例,因此在我的最终对象列表中,我没有两个同名变量的对象。
- 我想对同名对象的 Double 变量进行操作。
假设我的列表中有以下示例类:
ExampleClass first = new ExampleClass("apple",1,4);
ExampleClass second = new ExampleClass("pear",6,12);
ExampleClass third = new ExampleClass("apple",5,2);
ExampleClass fourth = new ExampleClass("peach",1,2);
ExampleClass fifth = new ExampleClass("plum",10,25);
在这种情况下,我想从列表中删除第一个或第三个元素,因为它们具有相同的名称,并且我想对数字进行运算,例如将 1 和 5 相加以及将 4 和 2 相乘。
提前感谢您的帮助!
编辑:我可以用一堆循环来解决它。但是,我需要我的代码可读且尽可能高效。我不是在寻找具有嵌套循环的蛮力解决方案,如果有更好的解决方案,我很感兴趣。
【问题讨论】:
-
那么...您尝试自己尝试解决什么问题?与其从
ExampleClass创建 N 个对象,不如创建一个数组,循环遍历它并将每个元素的名称与数组的其余部分进行比较,然后执行您需要的操作。 -
@Frakcool 我可以用头脑优先的方法来解决它,创建一堆循环并在整个过程中进行交互。没有更好的选择吗?
-
谷歌:“java 按名称分组元素”-> stackoverflow.com/questions/21678430/…
-
使用某种排序算法(快速排序,...)并按“水果”排序,然后在一个循环中比较相邻元素并进行操作。
标签: java list sorting arraylist