动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

8道Java迭代器自测题

09-07 17:21 79浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Java集合框架的集合类,我们有时候称之为容器,但因为容器的内部结构不同,很多时候可能不知道该怎样去遍历一个容器中的元素,所以为了使对容器内元素的操作更为简单,java引入了迭代器模式。java迭代器java编程过有着不可忽视的作,下java迭代器自测题,大家可以这些java迭代器自测题一下自己目前的水平以确认是否一步的java器的知识的

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

答:典型的代码如下:

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

答:典型的代码如下:

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

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

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

答:代码采用了布尔型值以及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迭代器的内容。

0人推荐
共同学习,写下你的评论
0条评论
夏天夏雨
程序员夏天夏雨

6篇文章贡献26649字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

五分钟读懂UML类图

江湖人称小李白12-10 10:41

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消