一个List中有多个表的对象 表对象有5个字段,所有对象的count字段都为1,现在想把name相等的对象合并,并且count会变成合并了几个就变为几。。。就是List中有10个表对象,其中3个对象的name相等,就把他们合并为8个,并且那个3合一的对象count是3
11条回答 默认 最新
- 极光舞者 2016-10-28 01:29关注
1.重写equals方法,name相同即为相等
2.新建一个List,用来放结果。
3.遍历旧的List,如果新的list中存在名字相同的,则新的List中该元素的count+1. 如果不存在,则放入新的List示例代码:
//测试类
public class ListTest {
public static void main(String[] args) {List<ListTestObject> oldList = new ArrayList<>(); //模拟数据 oldList.add(new ListTestObject("jack", 1)); oldList.add(new ListTestObject("jerry", 1)); oldList.add(new ListTestObject("jone", 1)); oldList.add(new ListTestObject("jerry", 1)); oldList.add(new ListTestObject("jone", 1)); List<ListTestObject> newList = new ArrayList<>(); for (ListTestObject testObjOld : oldList) { // 遍历新的List,看是否存在,存在则count加一,不存在则放入新的List boolean flag = false; for (ListTestObject testObjNew : newList) { if (testObjNew.equals(testObjOld)) { // 新的List中存在名字相同的,则count+1 testObjNew.setCount(testObjNew.getCount() + 1); flag = true; } } // 新的List中不存在 if (!flag) { newList.add(testObjOld); } } System.out.println(newList); }
}
//实体类
public class ListTestObject {
private String name;
private int count;
//因为示例只用了name,count,另外3个属性先不写。public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public ListTestObject(String name, int count) { super(); this.name = name; this.count = count; } @Override public boolean equals(Object obj) { ListTestObject testObj; try { testObj = (ListTestObject) obj; } catch (Exception e) { //类不同,直接返回false return false; } if(testObj.getName().equals(this.getName())){ return true; } return false; } @Override public String toString() { return "ListTestObject [name=" + name + ", count=" + count + "]"; }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 QT6颜色选择对话框显示不完整
- ¥20 能提供一下思路或者代码吗
- ¥15 用twincat控制!
- ¥15 请问一下这个运行结果是怎么来的
- ¥15 单通道放大电路的工作原理
- ¥30 YOLO检测微调结果p为1
- ¥15 DS18B20内部ADC模数转换器
- ¥15 做个有关计算的小程序
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下