使用IDE关联jdk源码,查阅ArrayList的iterator方法, 1.请写一份文档,说明iterator方法的next和hasNext方法如何配合完成ArrayList的遍历的, 2. iterator方法是Iterable接口里声明的,为什么jdk里面是在Collection这个接口继承Iterable,而不是Collection的实现类比如ArrayList来直接实现Iterable?

使用IDE关联jdk源码,查阅ArrayList的iterator方法, 1.请写一份文档,说明iterator方法的next和hasNext方法如何配合完成ArrayList的遍历的, 2. iterator方法是Iterable接口里声明的,为什么jdk里面是在Collection这个接口继承Iterable,而不是Collection的实现类比如ArrayList来直接实现Iterable?


参考答案和解析
The code has a compile error because asList(array) requires that the array elements are objects.

相关考题:

欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( B ) A.ArrayList myList=new Object();B.List myList=new ArrayList();C.ArrayList myList=new List();D.List myList=new List();

欲构造ArrayList类的一个实例,此类实现List接口,下列方法正确的是______。A.ArrayList myList=new Object( );B.List myList=new ArrayList( );C.ArrayList myList=new List( );D.List myList=new List( );

欲构造ArrayList类的一个实例,此类继承了List接口,下列( )方法是正确的。A.ArrayList myList=new Object();B.List myList=new ArrayList();C.ArrayList myList=new List();D.List myList=new List();

阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。[说明]某订单管理系统的部分UML类图如图5-16所示。在图5-16中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表5-23所示。可以使用类java.util.ArrayList<E>来实现对象的聚集关系,如图5-16中OrderList与Order之间的聚集关系。for-each循环提供了一种遍历对象集合的简单方法。在for-each循环中,可以指定需要遍历的对象集合及用来接收集合中每个元素的变量,其语法如下:for(用来接收集合中元素的变量:需要遍历的对象集合)如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable<T>。Java程序7-1和Java程序7-2分别给出了类OrderList和方法statistic的Java代码。

阅读下列说明、图以及Java程序。[说明]某订单管理系统的部分UML类图如下图所示。上图中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如下表所示。可以使用类java.util.ArrayList<E>米实现对象的聚集关系,如上图中OrderList与 Order之间的聚集关系。for-each循环提供了一种遍历对象集合的简单方法。在for-each循环中,可以指定需要遍历的对象集合以及用来接收集合中每个元素的变量,其语法如下:for(用来接收集合中元素的变量:需要遍历的对象集合)如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口 java.util.Iterable<T>。Java程序7-1和Java程序7-2分别给出了类OrderList和方法statistic的Java代码[Java程序7-1]import java.util.*;public class OrderList (1) {private ArrayList<Order> orders;public OrderList0 {this.orders = new ArrayList<Order>();}public void addOrder(Order orde0this.orders.add(order);}public Iterator<Order> iterator() {return (2);}public iht getNumberOfOrders0 {return this.orders.size();}}[Java程序7-21]import java.u61.*;public class SalesSystem {private ProductList catalog;private OrderList sales;private static PrintWriter stdOut = new PrintWriter(System.out, true);public void statistic() {for (Product product: (3)) {iht number = 0;for (Order order: (4)) {for ((5): order) {if (produet.equals(item.getProduct()))number += item. getQuantity();}}stdOut.println(product .getCode() +" "+ product.getDescription() +" "+ number +" "+ number * product.getPrice());}}//其余的方法末列出}

阅读以下说明和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. javapublic 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. javaimport 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());}}}

阅读下列函数说明和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();}};templateclass 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;}

欲构造ArrayList类的一个实例,此类实现了List接口,下列( )方法是正确的。A.ArrayList myList = new Object( );B.List myList = new ArrayList( );C.ArrayList myList = new List( );D.List myList = new List( );

集合在遍历过程中,有时需要对符合一定条件的元素进行删除,下列哪些说法是正确的: A.在foreach循环里进行元素的remove操作B.使用Iterator方式,如果有并发,需要对Iterator对象加锁C.Iterator进行元素的删除操作,绝对是线程安全的D.Java无法实现在遍历时,进行删除元素操作

关于Map类型集合的遍历方式,下列哪些说法是正确的: A.Map类型的实现类都同时实现了Iterator接口B.使用foreach进行遍历C.推荐使用keySet进行遍历D.推荐使用entrySet进行遍历

Vector和ArrayList的主要区别是()A、ArrayList内部基于链表,而Vector是基于数组的B、Vector的大部分方法做了同步,而ArrayList没有同步C、Vector是可串行化的,而ArrayList不是D、Vector实现了RandomAccess,而ArrayList没有

ArraryList a = new ArrayList();  a.add(“Alpha”);  a.add(“Bravo”):  a.add(“Charlie”);  a.add(“Delta”);  Iterator iter = a.iterator(); Which two, added at line 17, print the names in the ArrayList in alphabetical order?()A、 for (int i=0; i a.size(); i++)  System.out.println(a.get(i)));B、 for (int i=0; i a.size(); i++)  System.out.println(a[i]);C、 while( iter.hasNext() )  System.out.println(iter.next()) ;D、 for (int i=0, i a.size(); i++)  System.out.println(iter[i]);E、 for (int i=0; i a.size(); i++)  System.out.println(iter.get(i));

现有:   3.import java.util.*;   4.class ForInTest {   5.static List list = new ArrayList();  6.public static void main (String [] args){   7.  8.list.add("a"); list.add("b"); list.add("c");   9.//insert code here      10.System.out.print(o);  } }   哪一行插入到第9行将导致输出“abc”?() A、 for(Object o : list)B、 for(Iterator o : list)C、 for(Object o : list.iterator())D、 for(Iterator o : list.iterator(); o.hasNext (); )

下列哪个说法是正确的:()。A、ConcurrentHashMap使用synchronized关键字保证线程安全B、HashMap实现了Collection接口C、Arrays.asList方法返回java.uti.ArrayList对象D、SimpleDateFormat对象是线程不安全的

ArrayList和LinkList的描述,下面说法错误的是()。A、LinkedeList和ArrayList都实现了List接口B、ArrayList是可改变大小的数组,而LinkedList是双向链接串列C、LinkedList不支持高效的随机元素访问D、在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的

cogroup算子在类型为(K,V)和(K,W)的RDD上调用,返回一个(K,(Iterable,Iterable))类型的RDD

欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?()A、 ArrayList myList=new Object();B、 List myList=new ArrayList();C、 ArrayList myList=new List();D、 List myList=new List();

关于Java的集合下面说法错误的是()A、Collections是针对集合类的一个帮助类。提供了一系列静态方法实现对各种集合的搜索、排序、线程完全化等操作B、Collection没有get()方法来取得某个元素。只能通过iterator()遍历元素。C、HashMap会利用对象的hashCode来快速找到key。D、List、Set、Map 都是不允许重复的集合。E、Map中元素,可以将key序列、value序列单独抽取出来。

使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?()A、next()B、hash()C、hasPrevious()D、hasNext()

在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是LinkedList类有而ArrayList类没有的。A、add(Objecto)B、add(intndex,Objecto)C、remove(Objecto)D、removeLast()

1. import java.util.*;  2. public class Test {  3. public static void main(String[] args) {  4. List strings = new ArrayList();  5. // insert code here  6. }  7. }  Which four, inserted at line 5, will allow compilation to succeed?()A、 String s = strings.get(0);B、 Iterator i1 = strings.iterator();C、 String[] array1 = strings.toArray();D、 Iterator i2 = strings.iterator();E、 String[] array2 = strings.toArray(new String[1]);F、 Iterator i3 = strings.iterator();

单选题在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是LinkedList类有而ArrayList类没有的。Aadd(Objecto)Badd(intndex,Objecto)Cremove(Objecto)DremoveLast()

多选题1. import java.util.*;  2. public class Test {  3. public static void main(String[] args) {  4. List strings = new ArrayList();  5. // insert code here  6. }  7. }  Which four, inserted at line 5, will allow compilation to succeed?()AString s = strings.get(0);BIterator i1 = strings.iterator();CString[] array1 = strings.toArray();DIterator i2 = strings.iterator();EString[] array2 = strings.toArray(new String[1]);FIterator i3 = strings.iterator();

单选题现有:   3.  import java.util.*;   4.  class ForInTest {   5.    static List list = new ArrayList();   6.   7.    public static void main(String [] args) {   8.      list.add("a"); list.add("b"); list.add("c");   9.      //insert code here      10.     System.out.print(o);    11.   }   12. }   哪一行插入到第9行将导致输出“abc”?()A for(Object o : list)B for(Iterator o : list)C for(Object o : list.iterator())D for(Iterator o : list.iterator(); o.hasNext (); )

单选题现有:   3.import java.util.*;   4.class ForInTest {   5.static List list = new ArrayList();  6.public static void main (String [] args){   7.  8.list.add("a"); list.add("b"); list.add("c");   9.//insert code here      10.System.out.print(o);  } }   哪一行插入到第9行将导致输出“abc”?()A for(Object o : list)B for(Iterator o : list)C for(Object o : list.iterator())D for(Iterator o : list.iterator(); o.hasNext (); )

多选题ArraryList a = new ArrayList();  a.add(“Alpha”);  a.add(“Bravo”):  a.add(“Charlie”);  a.add(“Delta”);  Iterator iter = a.iterator(); Which two, added at line 17, print the names in the ArrayList in alphabetical order?()Afor (int i=0; i a.size(); i++)  System.out.println(a.get(i)));Bfor (int i=0; i a.size(); i++)  System.out.println(a[i]);Cwhile( iter.hasNext() )  System.out.println(iter.next()) ;Dfor (int i=0, i a.size(); i++)  System.out.println(iter[i]);Efor (int i=0; i a.size(); i++)  System.out.println(iter.get(i));

单选题Vector和ArrayList的主要区别是()AArrayList内部基于链表,而Vector是基于数组的BVector的大部分方法做了同步,而ArrayList没有同步CVector是可串行化的,而ArrayList不是DVector实现了RandomAccess,而ArrayList没有

单选题欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?()AArrayList myList=new Object();BList myList=new ArrayList();CArrayList myList=new List();DList myList=new List();