全国信息技术应用考试

使用Iterator遍历集合时,首先需要调用() 方法判断是否存在下一个元素,若存在下一个元素,则调用()方法取出该元素

题目

使用Iterator遍历集合时,首先需要调用() 方法判断是否存在下一个元素,若存在下一个元素,则调用()方法取出该元素

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。( )

此题为判断题(对,错)。


参考答案:错误

第2题:

阅读以下说明和Java代码,回答问题

[说明]

对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图6-1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。

[图6-1]

[Java代码]

//Iterator. java文件

public interface Iterator {

public abstract boolean hasNext();

public abstract Object next();

}

//Aggregate. java文件

public interface Aggregate {

public abstract Iterator iterator();

}

//Book. java

public class Book {

//省略具体方法和属性

}

//BookshelfIterator. java文件

public class Bookshelf工terator (1) Iterator{

private BookShelf bookShelf;

private int index;

public BookshelfIterator(BookShelf bookShelf) {

this. bookShelf = bookShelf;

this. index = 0;

}

public boolean hasNext(){//判断是否还有下一个元素

if(index < bookShelf. getLength()){

return true;

}else{

return false;

}

}

public Object next()f//取得下一个元素

Book book = bookShelf. getBookAt(index);

index++;

return book;

}

}

//BookShelf. java

import java. util. Vector;

public class BookShelf {

private Vector books;

public BookShelf(int initialsize){

this. books = new Vector(initialsize);

}

public Book getBookAt(int index){

return(Book)books.get(index);

}

public int getLength(){

return books.size();

}

public Iterator iterator(){

return new BookShelfIterator( (2) );

}

}

//Main. java文件

public class Main {

public static void main(String args){

BookShelf bookShelf = new BookShelf(4);

//将书籍上架,省略代码

Iterator it = bookShelf. (3) ;

while( (4) ){//遍历书架,输出书名

Book book = (Book)it. (5) ;

System.out.printin(" "+book.getName());

}

}

}


正确答案:(1)implements this iterator() it.hasNext() next()
(1)implements this iterator() it.hasNext() next() 解析:Iterator是接口类,空(1)应该填implements。
根据构造函数Bookshelflterator(BookshelfbookShelf)可得,空(2)应填this,即自身引用。
空(3)是取得迭代器实例,BookShelf类方法iterator()是返回Iterator接口,故空(3)应填iterator()。
while循环是遍历书架,输出书名,循环条件是“还有下一记录(书)”,故空(4)应填it.hasNext()。注意指针写法。
空(5)是取得书实例,BookShelf类中方法next()是返回Object类实例,取得下一本书,故空(5)应填next()。

第3题:

您正在开发一个调用COM组件的方法。您需要使用来显式请求运行库以执行完全堆栈遍历的声明性安全。您必须确保所有调用方在执行您的方法之前都具有要求的COMInterop信用级别。您应该为方法设置哪种属性?()

A.A

B.B

C.C

D.D


参考答案:A

第4题:

关于Map类型集合的遍历方式,下列哪些说法是正确的:

A.Map类型的实现类都同时实现了Iterator接口

B.使用foreach进行遍历

C.推荐使用keySet进行遍历

D.推荐使用entrySet进行遍历


正确答案:D

第5题:

编写一个程序,实现字符串大小写的转换并倒序输出。要求如下:

(1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。

(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。

(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。


答案:
public class Chap5e {
public static void main(String[] args) {
String str="Hell5oWorld";
char[] ch=str.toCharArray();
StringBuffer s=new StringBuffer();
for(int i=ch.length-1;i>=0;i--)
{
if(ch[i]>='A'&&ch[i]<='Z')
s.append(String.valueOf(ch[i]).toLowerCase());
else
if(ch[i]>='a'&&ch[i]<='z')
s.append(String.valueOf(ch[i]).toUpperCase());
else
s.append(String.valueOf(ch[i]));
}
System.out.print(s.toString());
}
}

第6题:

可以判断一个有向图中是否含有回路的方法为()。

A.广度优先遍历

B.深度优先遍历

C.拓扑排序

D.求最短路径


正确答案:C

第7题:

阅读下列函数说明和C++代码,回答问题

[说明]

对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。

[图5-1]

[C++代码]

template (1) >

class Iterator{

public:

virtual bool hasNext() = 0;

(2) Object* next() = 0;

};

class Book{

//省略具体方法和属性

};

class BookShelf{

private:

vector books;

public:

BookShelf(){

}

Book* getBookAt(int index){

return &booksindex;

}

int getLength(){

return books. size();

}

};

template

class BookshelfIterator : public (3) {

private:

BookShelf * bookShelf;

int index;

public:

BookshelfIterator(BookShelf *bookShelf){

this->bookShelf = bookShelf;

index = 0;

}

bool hasNext(){//判断是否还有下一个元素

if(index < bookShelf->getLength()){

return true;

}else{

return false;

}

}

Objeot* next(){//取得下一个元素

return bookShelf->getBookAt(index++);

}

};

int main()

{

BookShelf bookShelf;

//将书籍上架,省略代码

Book *book;

Iterator *it = new BookShelfIterator( (4) );

while( (5) ){//遍历书架,输出书名

book=(Book*)it->next();

/*访问元素*/

}

return 0;

}


正确答案:(1)Object virtual IteratorObject> &bookShelf it->hasNext()
(1)Object virtual IteratorObject> &bookShelf it->hasNext()

第8题:

您使用反射获取有关名为MyMethod的方法的信息。您需要确定派生类是否可以访问MyMethod。您应该怎么做?()

A.调用MethodInfo类的IsAssembly属性。

B.调用MethodInfo类的IsVirtual属性。

C.调用MethodInfo类的IsStatic属性。

D.调用MethodInfo类的IsFamily属性。


参考答案:D
如果此字段具有Family属性(Attribute)设置,则为true;否则为false。

第9题:

集合在遍历过程中,有时需要对符合一定条件的元素进行删除,下列哪些说法是正确的:

A.在foreach循环里进行元素的remove操作

B.使用Iterator方式,如果有并发,需要对Iterator对象加锁

C.Iterator进行元素的删除操作,绝对是线程安全的

D.Java无法实现在遍历时,进行删除元素操作


正确答案:B

第10题:

全口义齿试戴时判断颌位关系是否正确的方法不包括

A.咬合时基托是否有移动
B.张口时义齿是否脱落
C.后牙咬合时下颌是否偏斜
D.后牙咬合时两侧颞肌收缩是否有力
E.卷舌咬合时下颌是否还能后退

答案:B
解析:
张口时义齿是否脱落主要用于检查义齿边缘伸展是否过长。

更多相关问题