2

配列リストから値を取得しようとしています。

以下のような User タイプの 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

Iterator の代わりに 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 に答える