你可以创建一个迭代器来跨越二维数组中的所有空间吗?你能通过2d数组创建一个Java Iterator吗?
1
A
回答
3
2
是的,将数组包装在一个对象中并使该对象实现迭代器接口。所以它可以做到。我不知道这个Jdk附带的迭代器。
1
是的,可以这样做,正如@Scorpion所说。事实上,解决方案可能非常简单:不超过10行的可执行代码......如果我正确理解问题。
不,在JDK中没有一种方便的方法来做到这一点。而且我不知道任何一个“公共”图书馆都有。 (原因:这个特殊的问题太专业了,不适合少数程序员使用)。
这应该是你自己去实现解决方案的充分答案。
我应该/我们为您提供盆栽解决方案吗?海事组织,没有。
StackOverflow不是“我们免费写你的代码”服务。
如果您自己动手,您将会了解更多:请阅读优秀的"What have you tried?"博客文章。
(即使有人也觉得自己写的代码,你没有给这个问题的足够清晰的描述来实现......没有赚很多的猜测。)
1
我不认为有必要使调用两个来自阵列时,一个迭代器工作得很好按例如:
int 2dArray[][];
for(int 1dArray[]: 2dArray){
for(int i: 1dArray){
//do stuff
}
}
0
import java.util.LinkedList;
import java.util.Queue;
public class TwoDIterator {
int[][] array;
int outerCursor;
int lastArrayLen;
int totalElems;
int tracker = 1;
Queue<Integer> myQueue = new LinkedList<>();
public TwoDIterator(int[][] arr) {
this.array = arr;
this.outerCursor = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
totalElems += 1;
}
}
for (int i = 0; i < array[0].length; i++) {
myQueue.add(array[0][i]);
}
}
public boolean hasNext() {
return array.length > outerCursor && totalElems >= tracker;
}
public Integer next() {
if (myQueue.isEmpty()) {
outerCursor++;
for (int i = 0; i < array[outerCursor].length; i++) {
myQueue.add(array[outerCursor][i]);
}
if (!myQueue.isEmpty()) {
tracker++;
return myQueue.remove();
}
} else {
tracker++;
return myQueue.remove();
}
return -1;
}
public static void main(String[] args) {
int[][] arr = { { 1, 2, 3 }, { 1, 3 }, { 1, 2, 5 } };
TwoDIterator iter = new TwoDIterator(arr);
while (iter.hasNext()) {
System.out.println(iter.next());
}
}
}
+0
请详细说明您的问题。 – UmarZaii
相关问题
- 1. 你能通过对象引用创建一个类吗?
- 2. 通过接收2d坐标数组创建一个对象
- 3. 你能动态地在Javascript中创建一个数组吗?
- 4. 创建一个iterator在Java中
- 5. Javascript创建一个2d数组
- 6. 从2D创建一个C数组NSArray
- 7. 你能通过一个cin输入来访问一个数组吗?
- 8. 你能创建一个只有一个图层的OpenGL纹理数组吗?
- 9. 你如何在一个对象内创建一个数组? (java)
- 10. 你能说PHP中的关联数组就像2D数组吗?
- 11. 从数组创建2d矩阵(java)
- 12. 通过从文件中读取创建一个java数组
- 13. 你如何创建一个GList数组?
- 14. 你能用Python创建一个函数来为你创建一个类的几个实例吗?
- 15. 你能通过这个测试吗?
- 16. 你能从Visual Studio Mac创建一个Azure函数吗?
- 17. 你可以参数化一个意图创建功能吗?
- 18. 通过测试Java中的int数组的值创建一个char数组
- 19. 创建嵌套数组(2D)通过合并阵列
- 20. 你能用ABCL写一个Java类吗?
- 21. 你不能用双指针引用2d数组吗?
- 22. 你可以为一组div创建一个colorbox幻灯片吗?
- 23. 创建2d数组Javascript
- 24. 创建2D GtkWidget数组
- 25. Haskell-创建2d数组
- 26. Java从另一个数组的通用运行时类型创建数组
- 27. 你可以创建一个ITracingService吗?
- 28. 在一个while循环中创建一个2D PHP数组
- 29. 通过foreach创建数组
- 30. 通过一个JSON数组循环来创建一个表
[你尝试过什么?](HTTP:// mattgemmell .com/2008/12/08/what-you-you-tried) –
@Brian - 这是一个很好的链接! –
是的 - 我看到有人用这种方式在这里使用它,现在我已经采用了它。我认为这不是咆哮或过于苛刻就能解释问题。 –