我想要一个迭代器,它检索一个数组列表的每个记录(数组列表中的每个对象都有三个字段)。现在,我希望将检索到的记录发送到一个函数,我想在其中填充Map。
有人可以建议怎么做吗??
public class MainClass {
public void func1(int count){
System.out.println("iterator's record retrieved. Next is to populate"+count+"to the map");
//populateMap();
return;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MainClass mc=new MainClass();
ThreeFields tf1=new ThreeFields();
ThreeFields tf2=new ThreeFields();
ThreeFields tf3=new ThreeFields();
tf1.setField1("A");
tf1.setField2("B");
tf1.setField3("C");
tf2.setField1("D");
tf2.setField2("E");
tf2.setField3("F");
tf3.setField1("G");
tf3.setField2("H");
tf3.setField3("I");
ArrayList al=new ArrayList();
Object al1;
al.add(tf1);
al.add(tf2);
al.add(tf3);
Iterator i=al.listIterator();
while(i.hasNext()){
al1=i.next();
}
}
}
我不了解如何使用检索到的对象al1的内容。
答案 0 :(得分:1)
考虑将原始列表的引用传递给您的方法,将其转换为如下地图:
Map<Integer, ThreeFields> convert2Map(List<ThreeFields> list) {
Map<Integer, ThreeFields> map = new HashMap<Integer, ThreeFields>(list.size());
// Use LinkedHashMap instead of HashMap if you want to retain the insertion order
for (int i=0; i<list.size(); i++)
map.put(i, list.get(i));
return map;
}
当您在调用方法中声明列表时,也应该使用泛型。所以请使用以下表格:
List<ThreeFields> al = new ArrayList<ThreeFields>();
答案 1 :(得分:0)
Iterator myItr = myList.iterator();
Item myItem = myItr.next();
myFunction(myItem);
是你想要的吗?
您可能希望将来发布您尝试过的代码。人们不喜欢为你编写代码,而是喜欢帮助你纠正它。这样你就可以学习,而且不仅仅是他们的努力。