2

我正在尝试从数组列表中获取值。

我有如下用户类型的bean类..

class User{

      public String link;
      public String url;

     User(String l,String u){
           this.link=link;
           this.url=url;
      }
setters and getters below.. 

在这里,我正在尝试用 main 编写一个类。

public class ListClass{
      public static void main(String args[]){
            List<User> list = new ArrayList<User>();
            list.add(new User("link1","url1"));
            list.add(new User("link2","url2"));
            list.add(new User("link3","url3"));

            //here i want to iterate both links and urls one by one 

            Iterator it=list.iterator();
            // remaining the code to get both link1 and url1 ..
}

我需要输出为:

link1  url1
link2  url2
link3  url2
4

4 回答 4

10

您可以使用 for-in 构造代替迭代器:

for (User u : list) {
  System.out.println(u.link + " " + u.url);
}

如果您肯定要使用迭代器:

Iterator<User> it=list.iterator();
while (it.hasNext()) {
  User u = it.next();
  System.out.println(u.link + " " + u.url);
}
于 2012-06-04T14:26:32.877 回答
2

正如其他用户已经说明的那样,您可以使用增强for语句。还考虑添加一个toString()实现User

class User
{
    @Override public String toString()
    {
        return this.link + " " + this.url;
    }
}

这会将循环减少到:

for (User u: list)
{
    System.out.println(u);
}
于 2012-06-04T14:31:02.503 回答
0
for (User u : list) {
   System.out.println(u.getLink() + "  " + u.getUrl());
}
于 2012-06-04T14:27:30.207 回答
0

如果你坚持使用迭代器:

Iterator<User> it = list.iterator();
while(it.hasNext()) {
   /...
   it.next();
}
于 2012-06-04T14:28:29.940 回答