Tag: 迭代器

非常简单的素数测试 – 我想我不理解for循环

我正在练习以前的基础java考试的考试试卷,我发现很难做一个for循环工作来测试一个数字是否是素数。 我不想通过为更大的数字添加效率度量来使其复杂化,这只是至少适用于2位数字的东西。 目前,即使n是素数,它总是返回false。 我认为我的问题是我在for循环本身出错了,在哪里放“返回true”; 并且“返回虚假;”……我确信这是我犯的一个非常基本的错误…… public boolean isPrime(int n) { int i; for (i = 2; i <= n; i++) { if (n % i == 0) { return false; } } return true; } 我无法在stackoverflow上找到其他帮助的原因是因为类似的问题要求更复杂的实现以更有效的方式来实现它。

二叉树的有序迭代器

如何编写Java迭代器(即需要next和hasNext方法),它采用二叉树的根并按顺序迭代二叉树的节点?

由ResultSet支持的Java Iterator

我有一个实现Iterator的类,ResultSet作为数据成员。 基本上这个类看起来像这样: public class A implements Iterator{ private ResultSet entities; … public Object next(){ entities.next(); return new Entity(entities.getString…etc….) } public boolean hasNext(){ //what to do? } … } 如何检查ResultSet是否有另一行,以便我可以创建一个有效的hasNext方法,因为ResultSet没有自己定义hasNext? 我正在考虑做SELECT COUNT(*) FROM…查询以获取计数并管理该数字以查看是否有另一行但我想避免这种情况。

在同一个类中实现Java Iterator和Iterable?

我试图了解Java Iterator和Iterable接口 我正在写这门课 class MyClass implements Iterable { public String[] a = null; public MyClass(String[] arr) { a = arr; } public MyClassIterator iterator() { return new MyClassIterator(this); } public class MyClassIterator implements Iterator { private MyClass myclass = null; private int count = 0; public MyClassIterator(MyClass m) { myclass = m; } public boolean […]

迭代java中一行/路径上的每个点

我是新手使用迭代器,并想知道如何迭代线段上的每个点(Line2D.Double,确切地说) – 我需要检查线上的每个点是否满足某些要求。 另外,给定一个路径对象(如GeneralPath),你会如何做同样的事情(遍历形状轮廓上的每个点)? 理想情况下,我喜欢这样的东西(有一条线或一条路径): Line2D line = new Line2D.Double(p1,p2); for (Point2D point : line) { point.callSomeMethod(); }

Java – 在迭代时向列表添加元素

我想避免得到ConcurrentModificationException 。 我该怎么办?

迭代器有.next() – 有没有办法获取前一个元素而不是下一个元素?

我有一个在HashMap上使用的迭代器,我保存并加载迭代器。 有没有办法用Iterator获取HashMap中的上一个键? (java.util.Iterator的) 更新 我将它保存为Red5连接中的属性,然后将其加载以继续工作我停止的地方。 另一个更新 我正在遍历HashMap的键集

Java:为什么不能遍历迭代器?

我读了为什么Java的Iterator不是Iterable? 为什么不是可以输入的枚举? ,但我仍然不明白为什么这样: void foo(Iterator it) { for (X x : it) { bar(x); baz(x); } } 没有成功。 换句话说,除非我遗漏了某些东西,否则上面可能是一个很好的有效语法糖: void foo(Iterator it) { for (X x; it.hasNext();) { x = it.next(); bar(x); baz(x); } }

对集合进行线程安全迭代

我们都知道在使用Collections.synchronizedXXX (例如synchronizedSet() )时,我们得到了底层集合的同步“视图”。 但是,这些包装器生成方法的文档指出,在使用迭代器迭代集合时,我们必须在集合上显式同步 。 您选择哪个选项来解决此问题? 我只能看到以下方法: 按照文档说明:对集合进行同步 在调用iterator()之前克隆集合 使用迭代器是线程安全的集合(我只知道CopyOnWriteArrayList / Set) 并且作为一个额外的问题:当使用同步视图时 – 使用foreach / Iterable线程安全吗?

它不会抛出exceptionConcurrentModificationException

我有下面的代码,我希望它抛出一个ConcurrentModificationException ,但它运行成功。 为什么会这样? public void fun(){ List lis = new ArrayList(); lis.add(1); lis.add(2); for(Integer st:lis){ lis.remove(1); System.out.println(lis.size()); } } public static void main(String[] args) { test t = new test(); t.fun(); }