-2
我有兩個Java列表。第一個列表包含NAME列。第二個列表包含NAME和STATUS列。在Java中爲通用名稱制作第二個列表中的第三個列表
第一列表包含:David; David
第二列表包含:David,3; David,1;大衛,2;約翰,1;約翰3;
對於兩個列表中的每個常見名稱,我應該在下面的一行中創建第三個列表。
名稱狀態1狀態2 STATUS3
大衛·1 2 3
約1 3
我怎樣才能做到這一點使用Java列表收藏?
我的例子:我創建了三個包含三個列表的類。 //頭等艙
public class FirstClass {
private String name;
public FirstClass(String name) {
super();
this.name = name;
}
// getter和setter方法在這裏 }
//二等
公共類二等{
private String name;
private int status;
public SecondClass(String name, int status) {
super();
this.name = name;
this.status = status;
}
// setters and getters here
}
//三級欄目
個公共類三級欄目{
private String name;
private int status1;
private int status2;
private int status3;
public ThirdClass(String name, int status1, int status2, int status3) {
super();
this.name = name;
this.status1 = status1;
this.status2 = status2;
this.status3 = status3;
}
public ThirdClass() {
// TODO Auto-generated constructor stub
}
// setters and getters here
}
//執行類
進口的java.util。*;
公共類ClientExecute {
public static void main(String[] args) {
List<FirstClass> a1 = new ArrayList<FirstClass>();
a1.add(new FirstClass("David"));
a1.add(new FirstClass("John"));
a1.add(new FirstClass("David"));
List<SecondClass> a2 = new ArrayList<SecondClass>();
a2.add(new SecondClass ("John", 2));
a2.add(new SecondClass ("David", 2));
a2.add(new SecondClass ("David", 3));
a2.add(new SecondClass ("David", 1));
a2.add(new SecondClass ("John", 3));
ThirdClass third = null;
List<ThirdClass> a3 =null;
for(FirstClass first: a1) {
third = new ThirdClass();
a3 = new ArrayList<ThirdClass>();
for(SecondClass second: a2) {
if(first.getName().equalsIgnoreCase(second.getName())) {
third.setName(second.getName());
if(second.getStatus() ==1){
third.setStatus1(second.getStatus());
}
else if(second.getStatus() ==2){
third.setStatus2(second.getStatus());
}
else if(second.getStatus() ==3){
third.setStatus3(second.getStatus());
}
}
a3.add(third);
}
}
printThirdList(a3);
}
private static void printThirdList(List<ThirdClass> a3) {
for(ThirdClass list: a3){
System.out.println(list.getName()+list.getStatus1()+list.getStatus2()+list.getStatus3());
}
}
}
我想,我做錯了在迭代兩個列表,而比較。 我收到以下錯誤的輸出:
David 1 2 3;
David 1 2 3;
David 1 2 3;
David 1 2 3;
David 1 2 3;
Expected Output:
David 1 2 3;
John 1 3;