我有一个由Objects组成的列表 每个对象由2个不同的值组成
int number;
String name;
ArrayList<Object> objectList= new ArrayList<Object>();
我有另一个由汽车组成的清单 每辆车都有一个值
String type;
ArrayList<Cars> carList= new ArrayList<Cars>();
我想首先打印一半objectList
然后打carList
然后打印另一半objectList
像这样..例如:
输出=“数字+类型+名称”
基本上我想要在第一个列表之间打印第二个列表。我在网上搜索但是我不确定我应该寻找什么以及如何编码。
我再次为这个糟糕的问题感到抱歉..我正在努力学习编码,因为我买不起。
提前致谢。
答案 0 :(得分:0)
只需遍历第一个列表,然后使用索引访问第二个列表中的相应Object:
for(int i = 0; i < objectList.size(); i++){
Object obj = objectList.get(i);
Car car = carList.get(i);
//Print Here
}
答案 1 :(得分:0)
你说你想首先打印一半列表,然后你可以将原始列表分成一半:
Streams.of(objectList.sublist(0, length/2),
carList,
objectList.sublist(length/2, length))
.flatMap(Collection::stream)
.forEach(o -> {
if (o instanceof YourObject) {
YourObject o1 = (YourObject)o;
// Print with YourObject
} else if (o instanceof Cars) {
// Print car objects
}
})
答案 2 :(得分:0)
您可以通过for循环轻松实现此目的。 但是根据你的输出格式
objectList
和carList
的大小必须相同才能发挥作用。
尝试这样的事情:
for(int i=0;i<objectList.size();i++){
String name; int number;
number = objectList.get(i).number;
name = objectList.get(i).name;
String type = carList.get(i).type;
System.out.Println(name+type+number);
}
根据你的评论,如果carList在另一个类中并且是私有的,那么你需要设置一个getter方法,它接受一个索引并返回type
像这样:
public class A{
private ArrayList<Car> carList = new ArrayList();
........ //some codes
public String getTypeAtIndex(int i){ return carList.get(i).type; }
}
然后你可以在任何地方打电话
A a;
String type = a.getTypeAtIndex(i);