2012-07-16 80 views
2

以下是我如何声明我的列表。 it.next()似乎返回我的集合,当它应该返回一个对(这是一个字符串,int对)在我的列表之一。有任何想法吗? getFirst()方法对于Object类型是未定义的。看来如果我这样做,它会修复这个问题。无法通过列表循环<set <pair >>

String m =((Pair)it.next())。getFirst();

List <HashSet<Pair>> addresses = new ArrayList <HashSet<Pair>>(); 

for (int i = 0; i < 100; i++) { 
    Iterator it = (addresses.get(i)).iterator(); 
    while (it.hasNext()){ 
     String m = it.next().getFirst()); //getFirst returns a string 
    } 
} 
+1

你的代码看起来不错。仔细调试一步一步,看看你到底是什么? – Miquel 2012-07-16 22:12:03

+0

这是一个编译错误,而不是运行时 – jimmyC 2012-07-16 22:12:31

+0

在你的代码中,'it.next()'是一个'Pair'对象。不知道你在问什么......如果你有编译错误,请发布。 – assylias 2012-07-16 22:12:35

回答

6

试试这个,它编译就好:

List<Set<Pair>> addresses = new ArrayList<Set<Pair>>(); 
// fill the list of addresses 

for (int i = 0; i < 100; i++) { 
    Iterator<Pair> it = addresses.get(i).iterator(); 
    while (it.hasNext()) { 
     String m = it.next().getFirst(); 
    } 
} 

当然,你必须填写的地址与组对用于上述做些有用的事情列表。

+0

谢谢,那是我的问题! – jimmyC 2012-07-16 22:25:39

+0

@ user1526556不客气!如果这个答案对你有帮助,请不要忘记通过点击左边的复选标记来接受它。 – 2012-07-16 22:48:39

1

确保在while循环内的行末尾删除多余的括号。它应该看起来像这样

String m = it.next().getFirst();

相关问题