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);


输出

姓名:张三 年龄:15 分数:98
姓名:李四 年龄: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。的主要内容,如果未能解决你的问题,请参考以下文章

Java 计算n对应的二进制位上有几个1,分别在什么位置

java中两个List合并,相同元素剔除的问题

java中List对象列表去重或取出以及排序

LiveBOS Webservice传参类型为list数组

Java中list集合判空

java中两个list集合如何排序