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