2012-06-04 71 views
2

我想從arraylist中獲取值。迭代泛型類型<User> ArrayList

我有如下的用戶類型bean類..

class User{ 

     public String link; 
     public String url; 

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

在這裏,我試圖寫有主要的類。

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 
+0

'this.l'應該是'this.link',爲'u'和'網址同上'。 – hmjd

+0

「用戶」的構造函數包含錯誤的賦值。而使用迭代器是一件基本的事情。在谷歌搜索iterator的例子。 –

回答

10

可以使用換的結構,而不是迭代器:

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); 
} 
0
for (User u : list) { 
    System.out.println(u.getLink() + " " + u.getUrl()); 
} 
+0

感謝您編輯我的代碼。 – Mdhar9e

0

如果你堅持用itereator:

Iterator<User> it = list.iterator(); 
while(it.hasNext()) { 
    /... 
    it.next(); 
} 
2

正如已經被你可以使用enhanced for statement其他用戶說。考慮還加入了toString()實施User

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

這將減少環路:

for (User u: list) 
{ 
    System.out.println(u); 
}