java中List的问题,分别有几个List相同的对象,但是存放属性值不同的值,怎么组合成一个完整的List。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中List的问题,分别有几个List相同的对象,但是存放属性值不同的值,怎么组合成一个完整的List。相关的知识,希望对你有一定的参考价值。
比如:完整的对象Student有id,vol1,vol2,vol3 不同属性。list1中id,vol1有值,list2中id,vol2有值,list3同理。并且每个id对应相等。如何合并list让vol1,vol2,vol3有值。请别说addall() 谢谢。
import java.util.ArrayList;class Student
String name;
int age;
int score;
public Student(String name, int age, int score)
this.name = name;
this.age = age;
this.score = score;
@Override
public String toString()
return "姓名:"+name+"\\t年龄:"+age+"\\t分数:"+score;
public class Test
public static void main(String[] args)
ArrayList<String> list1 = new ArrayList<String>();
list1.add("张三");
list1.add("李四");
list1.add("王五");
ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(15);
list2.add(17);
list2.add(16);
ArrayList<Integer> list3 = new ArrayList<Integer>();
list3.add(98);
list3.add(99);
list3.add(100);
ArrayList<Student> list = new ArrayList<Student>();
for (int i = 0; i < list1.size(); i++) //合并成一个list
String name = list1.get(i);
int age = list2.get(i);
int score = list3.get(i);
list.add(new Student(name, age, score));
for (Student student : list) //输出
System.out.println(student);
输出
姓名:李四 年龄:17 分数:99
姓名:王五 年龄:16 分数:100追问
简单明了,没准也就只有这样了。确实是我想多了吧
参考技术A 哥们你想多了,List不可能满足任何人随心所欲的需求这种情况,你只能遍历所有List 自己手动合并相同对象追问
谢谢。那我在等等看有没有简便点的遍历处理方法。
java中两个List合并,相同元素剔除的问题
两个集合,List<Stu> list1,List<Stu> list2,Stu中两个属性分别为name和desc,list1中两个对象属性值分别是stu1,学生;stu2,学生。list2中两个元素属性值分别是stu2,班长;stu3,学生,现在想把两个集合合并为一个,name相同的合并,结果要变成三个元素,stu1,学生;stu2,班长学生;stu3,学生。name属性值相同的,desc属性值相加,请高手赐教!感激不尽!
参考技术A Map<String,Stu> stus = new HashMap<String,Stu>();for (Stu stu : list1)
if (stus.containsKey(stu.getName()))
Stu temp = stus.get(stu.getName());
temp.setDesc(temp.getDesc()+stu.getDesc());
stus.put(stu.getName(),temp);
else
stus.put(stu.getName(), stu);
for (Stu stu : list2)
if (stus.containsKey(stu.getName()))
Stu temp = stus.get(stu.getName());
temp.setDesc(temp.getDesc()+stu.getDesc());
stus.put(stu.getName(),temp);
else
stus.put(stu.getName(), stu);
//最后这个Map的valueSet就是你要得到的所有结果,
List<Stu> result = new ArrayList<Stu>();
result.addAll(stus.values());
本回答被提问者采纳
以上是关于java中List的问题,分别有几个List相同的对象,但是存放属性值不同的值,怎么组合成一个完整的List。的主要内容,如果未能解决你的问题,请参考以下文章