Tag: 迭代器

如何使用迭代器迭代二维ArrayList?

我想使用迭代器遍历包含String对象的二维ArrayList 。 我还想以一种方式迭代,让我选择是否要通过使用boolean值水平(行)首先或垂直(列)迭代。 我怎样才能在java中实现它? 到目前为止我尝试过的。 public class IterateThis implements Iterator{ ArrayList<ArrayList> array; public IterateThis(){ array = new ArrayList<ArrayList>(); array.add(new ArrayList()); array.add(new ArrayList()); array.add(new ArrayList()); array.get(0).add(“1”); array.get(0).add(“2”); array.get(0).add(“2”); array.get(1).add(“4”); array.get(1).add(“5”); array.get(1).add(“6”); } Iterator it = array.iterator(); //This gives me an error…why? 我不知道如何实现boolean值。

在Java中声明一个迭代器

我对Java中的迭代器非常困惑。 该教程正在阅读中说: 在Java编程语言中,接口是类似于类的引用类型,它只能包含常量,方法签名和嵌套类型。 没有方法体。 接口无法实例化 – 它们只能由类实现或由其他接口扩展。 扩展将在本课程后面讨论。 然后我看到了另一个教程: Iterator flavoursIter = aFlavours.iterator(); 我知道aFlavours已经inheritance了迭代器函数,它返回迭代器接口。 我只是不明白这一行实际发生了什么。 我以为你无法实例化? 也许我没有意义,但请告诉我,我正在离开赛道。

如何使用iterator java将JSONObject转换为其所有键的新Map

我有一个JSONObject {“2016”:{“12”:{“20”:{“19”:{“DonationTime”:11111111111,”Donation”:10}}}}} 我想用每个键将它转换为新地图 int i = 0; for (Iterator keysItr = object.keySet().iterator(); keysItr.`hasNext(); i++) { String key = keysItr.next(); Object value = object.get(key); if(value instanceof JSONObject) { value = toMap((JSONObject) value); map.put(key, value); } } SOP(map); //but here i want to get 4 maps } 我想得到4张地图 hourMap[19] = “{“DonationTime”:11111111111,”Donation”:10}”; dayMap[20] = “{“19”:{“DonationTime”:11111111111,”Donation”:10}}”; monthMap[12] = “{“12”:{“20”:{“19”:{“DonationTime”:11111111111,”Donation”:10}}}”; […]

两个线程访问经常更新的Arraylist的问题

我有存储许多对象的ArrayLists,并且经常在ArrayLists中添加和删除对象。 一个线程对数据结构进行操作,并每20ms左右更新一次ArrayList的对象。 另一个线程遍历ArrayLists并使用它们的元素绘制对象(也是每20-30ms)。 如果使用for循环遍历ArrayLists,则IndexOutOfBoundsExceptions比比皆是。 如果使用迭代器遍历ArrayLists,则ConcurrentModificationExceptions比比皆是。 像这样同步ArrayLists: List list = Collections.synchronizedList(new ArrayList()); synchronized(list) { //use iterator for traversals } 没有例外,但有大量的性能消耗。 有没有办法遍历这些ArrayLists而没有exception抛出,没有性能消耗? 谢谢!

为什么在java.util.Collection上有一个方法iterator()

为什么在接口java.util.Collection上定义了iterator()方法,它已经扩展了java.util.Iterable,它定义了这个方法。 我正在考虑某种向后兼容性或在集合级别上对方法编写一些JavaDoc的机会。 还有其他想法吗?

在Java中显示列表与Python中一样优雅

在Python中,将逗号显示为逗号分隔列表非常容易: >>> iterable = [“a”, “b”, “c”] >>> “, “.join(iterable) ‘a, b, c’ 是否有一种接近这种简洁的Java方式? (注意最后没有“,”。)

故障安全迭代器的逻辑是什么?

如果故障安全迭代器创建一个单独的副本并对其进行处理,那么它怎么知道对原始文件所做的任何更改? public class concurrentHashMap { public static void main(String[] args) throws InterruptedException { MapCheck obj1 = new MapCheck(); Thread t1 = new Thread(new Runnable() { @Override public void run() { obj1.put(); } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { obj1.iterte(); } }); t1.start(); t2.start(); t1.join(); t2.join(); } } class […]

Collection – Iterator.remove()vs Collection.remove()

按照Sun, “Iterator.remove是在迭代期间修改集合的唯一安全方法;如果在迭代进行过程中以任何其他方式修改基础集合,则行为未指定。” 我有两个问题: 是什么让这个操作“Iterator.remove()”比其他操作稳定? 如果它在大多数用例中没用,它们为什么提供“Collection.remove()”方法呢?

为java调用方法中的每个循环执行高级操作,返回一个数组以便每次迭代?

他, 我对java中的高级for循环有疑问。 如果有一个方法调用Method.returnArray(),我用for(ArrayElement e:Method.returnArray())迭代数组{// do smth} 每次迭代都会调用.returnArray()吗? 谢谢。

如何实现这个FilteringIterator?

IObjectTest是一个具有单个布尔测试(Object o)方法的接口 FilteringIterator是Iterator的一个实现,它用另一个Iterator和一个IObjectTest实例初始化:new FilteringIterator(myIterator,myTest)。 然后,您的FilteringIterator将允许迭代’myIterator’,但跳过任何未通过’myTest’测试的对象。 由于“hasNext”操作实际上涉及重复移动底层迭代器,直到到达下一个匹配项。 问题是如何将it迭代器移回迭代器,因为hasNext不应该移动底层迭代器。