0
我試圖根據其中一個屬性的值找到ArrayList中元素的索引,但它總是給我-1。在Arraylist中的索引<ABC>與其他Arraylist比較
//returnABClinklist method returns ABC linked list and i cannot use index of on linked list so am trying to convert it to arraylist
List<ABC> temp=new ArrayList<ABC>(someMethod.returnABClinklist());
List<XYZ> other=new ArrayList<XYZ>();
比方說ABC
有3個字段(rollnum
,name
,state
)和XYZ
有5個字段,其中3個是在共同與ABC
(rollnum
,name
,state
,secondname
,dob
)。我希望它遍歷一個列表,並根據它們的rollnum
值相同來查找另一個列表中的每個對應元素。我的目標是填寫其他相應的字段(name
和state
)。這是我試過的:
Iterator<ABC> itr = abcList.iterator();
while(itr.hasNext()){
ABC tempABC=itr.next();
int index = xyzList.indexOf(tempABC.rollnum()); //this always comes -1
}
問題是indexOf()
總是返回-1。有人可以幫助我的實施?
實際工作片斷
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class testLists {
public static void main(String[] args){
List<XYZ> temp=new ArrayList<XYZ>();
List<ABC> other=new ArrayList<ABC>();
ABC ab=new ABC();
ABC ab1=new ABC();
ab.rollnum=111;
ab.name="MAK";
other.add(ab);
ab1.rollnum=222;
ab1.name="DAK";
other.add(ab1);
XYZ abd=new XYZ();
XYZ abd1=new XYZ();
abd1.nameDB="MAK";
abd1.rollnumDB=111;
temp.add(abd1);
abd.nameDB="PONTY";
abd.rollnumDB=456;
temp.add(abd);
Iterator<XYZ> itr=temp.iterator();
while(itr.hasNext()){
XYZ tempXYZ=itr.next();
int index=other.indexOf(tempXYZ.getRollnumDB()); //this always comes -1
other.get(index) //get the data a
//add more values to the tempXYZ
});
}
}
POJO
public class ABC {
int rollnum;
String name;
String state;
public int getRollnum() {
return rollnum;
}
public void setRollnum(int rollnum) {
this.rollnum = rollnum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public String getState() {
return name;
}
public void setState(String name) {
this.name = name;
}
}
注:試圖實現我的XYZ POJO等號,但仍然沒有運氣
@JohnKugelman:先生請將此添加到任何Java程序與PVS將執行。只是希望有人可以幫助很快,或者我可以生成POJO和粘貼在這裏。 – NeverGiveUp161
是的,你可以,也應該提供一個最小的,完整的和可驗證的例子。 –
@JBNizet::)正如你說的先生,給我5分鐘更新。 – NeverGiveUp161