com*_*tta 19 java foreach iterator
当我使用JDK5时如下
ArrayList<Integer> list = new ArrayList<Integer>();
for (Integer i : list) {
//cannot check if already reached last item
}
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我只是使用一个 Iterator
ArrayList<Integer> list = new ArrayList<Integer>();
for (Iterator i = list.iterator(); i.hasNext();) {
//i can check whether this is last item
if(i.hasNextItem()){
}
}
Run Code Online (Sandbox Code Playgroud)
如何检查我是否已经使用了最后一项 for (Integer i : list) {
Rom*_*las 36
一种方法是使用计数器:
ArrayList<Integer> list = new ArrayList<Integer>();
...
int size = list.size();
for (Integer i : list) {
...
if (--size == 0) {
// Last item.
...
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
无论如何,正如Tom Hawtin所说,当你需要获取当前索引信息时,通过使用一个for循环或者iterator,当使用Java5语法时所获得的一切都将在循环中丢失时,有时候使用"旧"语法会更好本身...
for (int i = 0; i < list.size(); i++) {
...
if (i == (list.size() - 1)) {
// Last item...
}
}
Run Code Online (Sandbox Code Playgroud)
要么
for (Iterator it = list.iterator(); it.hasNext(); ) {
...
if (!it.hasNext()) {
// Last item...
}
}
Run Code Online (Sandbox Code Playgroud)
有时候使用迭代器会更好.
(据称,对于posh for循环中的索引的"85%"请求是用于实现String连接方法(您可以轻松地执行此操作).)
| 归档时间: |
|
| 查看次数: |
171080 次 |
| 最近记录: |