-1

我想采用一个迭代器,它检索数组列表的每条记录(数组列表中的每个对象都有三个字段)。现在,我希望将检索到的记录发送到一个函数,我想在其中填充一个 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 的内容。

4

2 回答 2

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>();
于 2012-04-26T13:26:25.013 回答
0
Iterator myItr  =  myList.iterator();
Item myItem = myItr.next();
myFunction(myItem);

那是你想要的吗?

您可能希望将来发布您尝试的代码。人们不喜欢为您编写代码,而是喜欢帮助您更正它。这样你就可以学习,而且它不仅表现出他们的努力。

于 2012-04-26T13:19:46.547 回答