Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
2D List Iterator
//'main' method must be in a class 'Rextester'. //Compiler version 1.8.0_111 import java.util.*; import java.lang.*; class Rextester { public static void main(String args[]) { List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2)); List<Integer> list2 = new ArrayList<>(Arrays.asList(3)); List<List<Integer>> vec2d = new ArrayList<>(); vec2d.add(list1); vec2d.add(list2); //1,2 //3 MyIterator myIter = new MyIterator(vec2d); System.out.println(myIter.hasNext()); System.out.println(myIter.next()); System.out.println(myIter.hasNext()); myIter.remove(); System.out.println(myIter.next()); for (int i = 0; i < vec2d.size(); i++) { if (vec2d.get(i) == null) continue; for (int j = 0; j < vec2d.get(i).size(); j++) { System.out.println("List" + i + ":" + vec2d.get(i).get(j)); } } System.out.println(myIter.hasNext()); System.out.println(myIter.next()); } } class MyIterator implements Iterator<Integer> { private Iterator<List<Integer>> i; private Iterator<Integer> j; public MyIterator(List<List<Integer>> vec2d) { this.i = vec2d.iterator(); this.j = null; } public boolean hasNext() { //注意这里是while不是if while ((j == null || !j.hasNext()) && i.hasNext()) { //如果有需要,比如List里面含有null元素,则需要特殊处理一下handle有null的情况 //否则下面j = i.next().iterartor()就会null pointer j = i.next().iterator(); } return j != null && j.hasNext(); } public Integer next() { if (!hasNext()) { return null; } return j.next(); } public void remove() { //注意这里!j.hasNext()无所谓,只要判断j不是null就行 while (j == null && i.hasNext()) { j = i.next().iterator(); } if (j != null) { j.remove(); } } }
run
|
edit
|
history
|
help
0
JAVA İLE CELCIUS HESAPLAMA - Fahrenheit to Celsius with Java
1
do whilee
reserve array value
hellojava.java
fs
Prime Factors
1.6
Fibonacci 2
Counter.java