当前位置: 首页 > 图灵资讯 > 技术篇> 8道Java迭代器自测题

8道Java迭代器自测题

来源:图灵教育
时间:2023-03-26 16:40:19

Java集合框架我们有时称之为容器,但由于容器的内部结构不同,我们可能不知道如何通过容器中的元素,所以为了使容器中的元素更容易操作,java引入迭代器模式。java迭代器java编程过有着不可忽视的作,下java迭代器自测,大家可以这些java迭代器自测一下自己目前的水平以确认是否一步的java器的知识的

1、假设e是用于某个数据结构的枚举。编写一个循环,用e打印数据结构的所有值。

答:典型代码如下:

2、假设I是用于某个数据结构的选代器。编写一个循环,用i打印数据结构的所有值

答:典型代码如下:

3、假设v是一个整数向量。编写一个循环,用迭代器打印偶数值

答:在这种情况下,必须确认已经采用强制转换的方式将Iterator变量的值赋值给一个整形变量,这一点非常重要:

4、你可以用一定的顺序写下来1到15的整数使每对相邻的整数形成一个完美的正方形。编写一个循环,打印Perfect(不需要验证数值的数量和范围),只在迭代器g产生的相邻整数值之和形成完美的正方形时。

答:代码采用布尔型值和布尔型值Math.sqrt函数:

5、因为Abstractlterator可以使用get法,因此next法似乎不需要返回一个值为什么在我们的实现中仍然有回归值?

答:Abstractlterator Iterator类的实现,必须实现Iterator的方法。

6、编写迭代器,返回一串素数。它的生成器有什么相似之处?

答:

import structure*; 
import java. util. Iterator; 

public class Primeiterator extends Abstractiterator 
{
  protected Vector primes; 
  protected int current; 

  public Prime Iterator () 
  // post: construct a generator that delivers primes starting at 2
{
   reset(); 
}
public void reset() 
// post: reset the generator to return primes starting at 3 
{
   primes= new Vector(); 
   primes.add (口 ew Integer(2)); 
   current =0; 
}

public boolean hasNext() 
//post: returns true - an indication that there are always more primes 
{
return true; 
}
publ Object get () 
return pr mes.get(current);
publ Object next() 
II post: geneate the next prime 
Integer N =(Integer)get(); 
current++; 
if ( current >= primes. size() ) 
int n = N.intValue(); 
nt i, f; 
teger F; 
do 
{
if(n ==2) n =3; 
else n = n + 2; 
for (i=O; i < pr mes. size ();工++)
F = (Integer)primes.get(i); 
f = F. intValue (); 
if ( (n f)== 0) break; 
} while (i < primes. size()); 
primes.add(new Integer(n)); 
return N;
}
}

主要区别是素数迭代器返回Integer值,而不是int。

7、编写过滤迭代器, Orderedlterator对另一个迭代器产生的值进行排序。假设基迭代器中最终不再有元素,但不能限制数量。

答:该解决方案使用有序列表。另一种方法是将值存储在一个向量中,或将所有值存储在一个向量中,然后进行快速排序。

8、写一个包含基迭代器和一个select方法定义为静态对象(称为 predicate)过滤法代器。这个迭代器只传递当它传递给那些 predicate对象 select 在该方法中,产生真值。

答:这意味着构建两个类和接口 Predicate 接口形式如下:

punlic interface predicate
{
  public boolean select(Object item); 
  //pre: item is a valid ob] ect
  // post: returns true or false, depending on the predicate tested
}

当传递给它的字符串对象的长度仅当10或更长时间,特定的 Predicate返回true

以上是8个java迭代器自测题,迭代器可以使容器中的元素操作更加简单,有了迭代器,java程序员在开发过程中,人们不再需要了解容器底部的结构来实现容器的遍历。我希望以上java迭代器自测题能起到查漏补缺的作用,从而掌握java迭代器的内容。