在Java中,ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素。已知程序中创建了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是 ()A.bookTypeList.add("小说");B.bookTypeList.get("小说");C.bookTypeList.contains("小说");D.bookTypeList.remove("小说");

题目

在Java中,ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素。已知程序中创建了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是 ()

A.bookTypeList.add("小说");

B.bookTypeList.get("小说");

C.bookTypeList.contains("小说");

D.bookTypeList.remove("小说");


相似考题

1.试题六(共 15分)阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:void addElement(Object): 在列表尾部添加一个对象;Object lastElement(): 返回列表尾部对象;int numberOfElement(): 返回列表中对象个数;void removeLastElement(): 删除列表尾部的对象。现需要借助LinkedList来实现一个Stack栈类, Java代码1和Java代码2分别采用继承和组合的方式实现。【Java代码1】public class Stack extends LinkedList{public void push(Object o){ //压栈addElement(o);}public Object peek(){ //获取栈顶元素return (1) ;}public boolean isEmpty(){ //判断栈是否为空return numberOfElement() == 0;}public Object pop(){ //弹栈Object o = lastElement();(2) ;return o;}}【Java代码2】public class Stack {private (3) ;public Stack(){list = new LinkedList();}public void push(Object o){list.addElement(o);}public Object peek(){//获取栈顶元素return list. (4) ;}public boolean isEmpty(){//判断栈是否为空return list.numberOfElement() == 0;}public Object pop(){ //弹栈Object o = list.lastElement();list.removeLastElement();return o;}}【问题】若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)

更多“在Java中,ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素。已知程序中创建了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是 ()”相关问题
  • 第1题:

    阅读以下关于某订单管理系统的技术说明、部分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语言中的java.util.ArrayListE>和for…each循环的程序分析题。本题的解答思路如下。 仔细阅读Java程序7-1——类OrderList的Java代码可知类OrderList中具有一个类型为 ArrayListOrder>的属性。结合图5-16订单管理系统的部分UML类图可知类OrderList和Order之间具有聚集关系。由试题给出的关键信息“可以使用类java.util.ArrayListE>来实现对象的聚集关系”、“如果要使用for…each循环来遍历对象集合那么包含该对象集合的类必须实现接口java.util.IterableT>”可以推理出(1)空缺处所填写的内容是“implements IterableOrder>”。 在定义了ArrayListE>的类中必须实现接口IteratorOrder>中的方法iteratorOrder>∷iterator()因此(2)空缺处所填写的实现体应为:return this.orders.iterator()或return orders.iterator()。 仔细阅读Java程序7-2——方法statistic的Java代码可以初步判断要填写(3)~(5)空缺处首先要将方法statistic的功能及实现流程分析清楚。而且(3)~(5)空缺处所填写的内容与for…each循环的使用有关;使用for…each循环时关键是要确定所遍历的是哪一个对象集合。在类SalesSystem中已经具有两个对象集合即属性catalog和sales。 方法statistic的功能是依次统计产品目录中每个产品的订购总量并打印出每个产品的编号、说明、订购总量和订购金额。若要统计产品目录中每个产品的订购总量需要对3个对象集合进行遍历;产品目录(ProductList)、订单列表(OrderList)及Order(需要对订单中的所有订单项进行查询统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程是:①从产品目录中取出一个产品→②在订单目录依次查询每张订单→③逐一查询某个订单中的所有订单项。 ①从产品目录中取出一个产品这对应第1条for…each语句此时被遍历的对象集合为ProductList。根据试题给出的for…each循环的语法——“for(用来接收集合中元素的变量:需要遍历的对象集合)”和(3)空歌处前半句的“Productproduct:”可以推断出(3)空缺处应填写ProductList类的对象而类SalesSystem中的catalog就是ProductList的实例。并且结合图5-16的UML类图可知类ProductList和Product之间具有聚集关系。依照Java的程序设计规范引用类的属性时应使用“this.”属性名的形式。因此(3)空缺处的答案为this.catalog(或catalog)。 ②在订单目录依次查询每张订单其对应于第2条for…each语句。根据第(3)空缺处的解题思路可以确定出(4)空缺处应填写OrderList类的对象即类SalesSystem的属性sales。因此(4)空缺处的答案为this.sales(或sales)。 ③逐一查询某个订单中的所有订单项其对应于第3条for…each语句。由图5-16类图上可以看出与类Order具有聚集关系的类是OrderItem。由此可以确定(5)空缺处应填写类OrderItem的对象。由于类SalesSystem中没有这种类型的属性因此需要在这里定义一个临时对象。另外在if语句中出现了一个标识符item但是在上下文中并没有出现对它的定义。由此可以推断item的定义应该在(5)空缺处提供。因此(5)空缺处的答案为OrderItem item。
    这是一道要求读者掌握Java语言中的java.util.ArrayListE>和for…each循环的程序分析题。本题的解答思路如下。 仔细阅读Java程序7-1——类OrderList的Java代码可知,类OrderList中具有一个类型为 ArrayListOrder>的属性。结合图5-16订单管理系统的部分UML类图可知,类OrderList和Order之间具有聚集关系。由试题给出的关键信息“可以使用类java.util.ArrayListE>来实现对象的聚集关系”、“如果要使用for…each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.IterableT>”可以推理出,(1)空缺处所填写的内容是“implements IterableOrder>”。 在定义了ArrayListE>的类中,必须实现接口IteratorOrder>中的方法iteratorOrder>∷iterator(),因此(2)空缺处所填写的实现体应为:return this.orders.iterator(),或return orders.iterator()。 仔细阅读Java程序7-2——方法statistic的Java代码可以初步判断,要填写(3)~(5)空缺处,首先要将方法statistic的功能及实现流程分析清楚。而且(3)~(5)空缺处所填写的内容与for…each循环的使用有关;使用for…each循环时,关键是要确定所遍历的是哪一个对象集合。在类SalesSystem中已经具有两个对象集合,即属性catalog和sales。 方法statistic的功能是依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额。若要统计产品目录中每个产品的订购总量,需要对3个对象集合进行遍历;产品目录(ProductList)、订单列表(OrderList)及Order(需要对订单中的所有订单项进行查询,统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程是:①从产品目录中取出一个产品→②在订单目录依次查询每张订单→③逐一查询某个订单中的所有订单项。 ①从产品目录中取出一个产品,这对应第1条for…each语句,此时被遍历的对象集合为ProductList。根据试题给出的for…each循环的语法——“for(用来接收集合中元素的变量:需要遍历的对象集合)”和(3)空歌处前半句的“Productproduct:”可以推断出,(3)空缺处应填写ProductList类的对象,而类SalesSystem中的catalog就是ProductList的实例。并且结合图5-16的UML类图可知,类ProductList和Product之间具有聚集关系。依照Java的程序设计规范,引用类的属性时,应使用“this.”属性名的形式。因此(3)空缺处的答案为this.catalog(或catalog)。 ②在订单目录依次查询每张订单,其对应于第2条for…each语句。根据第(3)空缺处的解题思路,可以确定出(4)空缺处应填写OrderList类的对象,即类SalesSystem的属性sales。因此(4)空缺处的答案为this.sales(或sales)。 ③逐一查询某个订单中的所有订单项,其对应于第3条for…each语句。由图5-16类图上可以看出,与类Order具有聚集关系的类是OrderItem。由此可以确定(5)空缺处应填写类OrderItem的对象。由于类SalesSystem中没有这种类型的属性,因此需要在这里定义一个临时对象。另外在if语句中出现了一个标识符item,但是在上下文中并没有出现对它的定义。由此可以推断item的定义应该在(5)空缺处提供。因此(5)空缺处的答案为OrderItem item。

  • 第2题:

    阅读下列说明、图以及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 orde0

    this.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());

    }

    }

    //其余的方法末列出

    }


    正确答案:(1) implements IterableOrder> (2) this.orders.iteratorO或 orders.iterator() (3) this.catalog 或 catalog (4) this.sales 或 sales (5) OrderItem item
    (1) implements IterableOrder> (2) this.orders.iteratorO,或 orders.iterator() (3) this.catalog, 或 catalog (4) this.sales, 或 sales (5) OrderItem item 解析:本题考查的是Java语言中的java.util.ArrayListE>和for-each循环。
    java.util.ArrayListE>可以用来实现对象的聚集关系。for-each循环提供了一种遍历对象集合的简单方法。在for-each循环中,可以指定需要遍历的对象集合以及用来接收集合中每个元素的变量,其语法如下:
    for(用来接收集合中元素的变量:需要遍历的对象集合)
    如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口 java.util.IterableT>。由此可以得到第(1)空的答案。因为类OrderList中具有一个类型为 ArrayListOrder>的属性,而且从类图也能看出类OrderList和Order之间具有聚集关系。因此第(1)空应填implementslterableOrder>。
    在定义了AnayListE>的类中,必须实现接口IterableOrder>中的方法Iterator Order>∷iterator(),其实现体应为return this.orders.iterator()。因此第(2)空应填this. orders.iterator()。
    空(3)~(5)考查的是for-each循环的使用。使用for-each循环时,关键是要确定所遍历的是哪一个对象集合。在类SalesSystem中已经具有两个对象集合,即属性catalog和 sales。要填写空(3)~(5),首先要将方法statistic的功能及实现流程分析清楚。
    方法statistic的功能是依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额。若要统计产品目录中每个产品的订购总量,需要对3个对象集合进行遍历:产品目录(ProductList)、订单列表(OrderList)以及Order (需要对订单中的所有订单项进行查询,统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程:
    ①从产品目录中取出一个产品,这对应第一条for-each语句,这时被遍历的对象集合为ProductList。根据for-each循环的语法,第(3)空应填写ProductList类的对象,而类 SalesSystem中的catalog就是ProductList的实例。按照Java的程序设计规范,引用类的属性时,应使用this.属性名的形式。因此第(3)空的答案为this.catalog。其实,从前半句 Product product也可以推断出第(3)空的答案,因为从类图上可以看到ProductList和 Product之间具有聚集关系。
    ②在订单目录一次查询每张订单,这里对应第一条for-each语句。根据第(3)空的解题思路,可以很容易地确定第(4)空应填OrderList类的对象,即类SalesSystem的属性 sales。因此第(4)空的答案为this.sales。
    ③逐一查询某个订单中的所有订单项,这里对应第三条for-each语句。由类图上可以看出,与类Order具有聚集关系的类是Orderltem。所以第(5)应填写类OrderItem的对象。类SalesSystem中没有这种类型的属性,在这里定义一个临时对象。另外在if语句中出现了一个标识符item,但是在上下文中并没有出现对它的定义。在这里可以推断item的定义应该在第(5)空提供。因此第(5)空的答案为OrderItem item。

  • 第3题:

    下列关于字符串的叙述错误的是 ( )

    A.创建了字符串对象后,字符串所代表的文本根据情况可改变

    B.字符串由java.lang.String和java.lang.StringBuffer定义

    C.字符串常用数组存储,处理字符串实际上就是对数组元素的分别处理,要注意数组下界不要越界

    D.在Java语言中,字符串是作为对象来处理的


    正确答案:A

  • 第4题:

    Vector和ArrayList的主要区别是()

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

    正确答案:B

  • 第5题:

    在Java中LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是这两个类都有的

    • A、addFirst(Objecto)
    • B、getFirst()
    • C、removeFirst()
    • D、add(Objecto

    正确答案:D

  • 第6题:

    对于java.util.TreeSet类,下面哪些描述是正确的()

    • A、这个集合中的元素是有序的
    • B、这个集合是保证不可变的
    • C、集合中的元素保证是唯一的
    • D、集合中元素使用唯一的key访问
    • E、集合中的元素保证是同步的

    正确答案:A,C

  • 第7题:

    在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队列为满的条件是()。


    正确答案:length= =MS

  • 第8题:

    关于main方法中的arg[],下列哪个表述是正确且全面的()

    • A、main方法中的参数是字符串数组arg[],args是命令行参数,字符串数组arg[]的元素是在程序运行时从命令行输入的。
    • B、main方法中的参数是字符串数组arg[],args是命令行参数,字符串数组arg[]的元素是在程序编译时从命令行输入的。
    • C、main方法中的参数是字符串数组arg[],args是命令行参数,字符串数组arg[]的元素是在程序编译时直接写入txt文件的。
    • D、main方法中的参数是字符串数组arg[],args是命令行参数,字符串数组arg[]的元素可以在任何需要的时刻内输入。

    正确答案:A

  • 第9题:

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

    add(Objecto)

    B

    add(intndex,Objecto)

    C

    remove(Objecto)

    D

    removeLast()


    正确答案: B
    解析: 暂无解析

  • 第10题:

    单选题
    对于Java中的集合类java.util.ArrayList,以下说法正确的是()。
    A

    这个集合中的元素是无序的

    B

    可以通过键来获取这个集合中的元素

    C

    可以通过addFirst()方法,在列表的首部插入元素

    D

    在对这个集合的元素执行遍历操作时,效率比较高


    正确答案: B
    解析: 暂无解析

  • 第11题:

    单选题
    在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是()。
    A

    bookTypeList.add(小说);

    B

    bookTypeList.get(小说);

    C

    bookTypeList.contains(小说);

    D

    bookTypeList.remove(小说);


    正确答案: B
    解析: 暂无解析

  • 第12题:

    单选题
    针对数组定义int data[10];,下列表述中错误的是(  )。
    A

    用*data可访问到数组的首元素

    B

    用data[9]可访问到数组的末元素

    C

    用data[10]访问数组元素会超出数组边界

    D

    data共有10个元素,其首元素是data[1]


    正确答案: D
    解析:
    题目中data[10]共有10个元素,分别是data[0]、data[1]、 data[2]、data[3]…data[9],首元素是data[0]。

  • 第13题:

    下列数组array_test中,能在程序运行时动态调整大小的是

    A.int array_test []=new int[10]

    B.String[] array_test

    C.ArrayList array_test=new ArrayList()

    D.Array array_test=new Array()


    正确答案:C
    解析:本题考查数组的概念。数组的定义与初始化是考试重点,也是比较容易出错的地方,应该灵活掌握。动态初始化需要使用new操作符来分配内存空间,既可以在声明时初始化,也可以在声明以后初始化。
    声明时初始化:
    类型数组名[]=new类型[数组长度];
    声明后初始化:
    类型数组名[];数组名=new类型[数组长度];
    选项A定义了一个含有10个元素的整型数组,不符合题意;选项B定义了一个字符串数组。在Java语言中用一种特殊的类——java.util.ArrayList(数组列表)在运行时能动态调整数组的大小。ArrayList类在定义数组时,不必限定数组的大小。在数组列表初始化时,可用add()方法将数组元素赋值。

  • 第14题:

    下列关于字符串的叙述错误的是( )。

    A.创建String类的字符串对象后,字符串所代表的文本根据情况可改变

    B.字符串由java.lang.String和java.lang.SlringBuffer定义

    C.字符串常用数组存储,处理字符串实际上是对数组元素的分别处理,要注意数组下界不要越界

    D.在Java语言中,字符串是作为对象来处理的


    正确答案:A

  • 第15题:

    欲构造ArrayList类的一个实例,此类实现了List接口,下列( )方法是正确的。

    A.ArrayList myList = new Object( );

    B.List myList = new ArrayList( );

    C.ArrayList myList = new List( );

    D.List myList = new List( );


  • 第16题:

    ArrayList和LinkList的描述,下面说法错误的是()。

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

    正确答案:D

  • 第17题:

    在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是()。

    • A、bookTypeList.add("小说");
    • B、bookTypeList.get("小说");
    • C、bookTypeList.contains("小说");
    • D、bookTypeList.remove("小说");

    正确答案:C

  • 第18题:

    在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则删除一个元素后队首的位置为()。


    正确答案:(first+l)%MS

  • 第19题:

    在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是LinkedList类有而ArrayList类没有的。

    • A、add(Objecto)
    • B、add(intndex,Objecto)
    • C、remove(Objecto)
    • D、removeLast()

    正确答案:D

  • 第20题:

    对于Java中的集合类java.util.ArrayList,以下说法正确的是()。

    • A、这个集合中的元素是无序的
    • B、可以通过键来获取这个集合中的元素
    • C、可以通过addFirst()方法,在列表的首部插入元素
    • D、在对这个集合的元素执行遍历操作时,效率比较高

    正确答案:D

  • 第21题:

    单选题
    现有如下类型:   a - java.util.Hashtable  b - java.util.List  c - java.util.ArrayList  d - java.util.SortedSet  和定义:  1 – 使用本接口,允许用户控制集合中每个元素的插入位置。   2 – 使用本集合,确保用户可以按照递增或元素的自然顺序遍历集合。   3 – 本具体类型允许空元素及基于索引的访问。    4 – 本集合是同步的。   哪一组匹配是对的?()
    A

     1 描述 b; 3 描述 c。

    B

     2 描述 d; 3 描述 b。

    C

     3 描述 a; 4 描述 b。

    D

     4 描述 a; 2 描述 c。


    正确答案: C
    解析: 暂无解析

  • 第22题:

    单选题
    在Java中LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是这两个类都有的
    A

    addFirst(Objecto)

    B

    getFirst()

    C

    removeFirst()

    D

    add(Objecto


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    Vector和ArrayList的主要区别是()
    A

    ArrayList内部基于链表,而Vector是基于数组的

    B

    Vector的大部分方法做了同步,而ArrayList没有同步

    C

    Vector是可串行化的,而ArrayList不是

    D

    Vector实现了RandomAccess,而ArrayList没有


    正确答案: A
    解析: 暂无解析

  • 第24题:

    单选题
    ArrayList和LinkList的描述,下面说法错误的是()。
    A

    LinkedeList和ArrayList都实现了List接口

    B

    ArrayList是可改变大小的数组,而LinkedList是双向链接串列

    C

    LinkedList不支持高效的随机元素访问

    D

    在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的


    正确答案: C
    解析: Arraylist的内存结构是数组,当超出数组大小时创建一个新的数组,把原数组中元素拷贝过去。其本质是顺序存储的线性表,插入和删除操作会引发后续元素移动,效率低,但是随机访问效率高 LinkedList的内存结构是用双向链表存储的,链式存储结构插入和删除效率高,不需要移动。但是随机访问效率低,需要从头开始向后依次访问