第六章 集合类:Java集合类存放于 java.util 包中,是一个用来存放对象的容器。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本章详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。程序需要根据程序运行时才知道创建多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是数组只能放统一类型的数据,而且其长度是固定的,那怎么办呢?集合便应运而生了!      本章重点讲述了Collection接口、List接口、Set接口和Map接口,以及泛型与常用工具类。6.1集合概述:JAVA为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于java.util包下。集合里只能保存对象(实际上也是保存对象的引用变量,但通常习惯上认为集合里保存的是对象)。Java的集合类主要由两个接口派生而出:Collection和Map。Java集合大致可分为Set、List和Map三种体系,Java集合框架主要由Collection和Map两个根接口及其子接口、实现类组成
6.2Collection接口:Collection接口用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。Collection 是List和Set 的父类。并且它本身也是一个接口。它定义了作为集合所应该拥有的一些方法。Collection 它仅仅只是一个接口,而我们真正使用的时候,确是创建该接口的一个实现类。做为集合的接口,它定义了所有属于集合的类所都应该具有的一些方法。
6.3List接口:List 就是列表的意思,它是Collection 的一种,即继承了 Collection 接口,以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。List 是按对象的进入顺序进行保存对象,而不做排序或编辑操作。它除了拥有Collection接口的所有的方法外还拥有一些其他的方法。 List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。因为List集合默认按元素的添加顺序设置元素的索引。List作为Collection接口的子接口,当然可以使用Collection接口里的全部方法。而且由于List是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法。
6.4Set接口:Set 接口继承 Collection 接口,Java 中的Set和正好和数学上直观的集(set)的概念是相同的。Set最大的特性就是不允许在其中存放的元素是重复的。根据这个特点,我们就可以使用Set这个接口来实现数据的存储需求。Set可以被用来过滤在其他集合中存放的元素,从而得到一个没有包含重复新的集合。支持Set接口两种普通的实现:HashSet 和 TreeSet以及LinkedHashSet。在更多情况下,使用 HashSet 存储重复自由的集合。同时HashSet中也是采用了Hash算法的方式进行存取对象元素的。
6.5Map接口:Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任何引用类型的数据。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false。 key和value之间存在单向一对一关系,即通过指定的key,总能我到唯一的、确定的value。从Map中取出数据时,只要给出指定的key,就可以取出对应的value
[单选题]阅读代码,选择正确答案。
    import java.util.*;
    public class TestListSet{
        public static void main(String args[]){
            List list = new ArrayList();
            list.add(
Hello);
            ist.add(
Learn);
            list.add(
Hello);
            list.add(
Welcome);
            et set = new HashSet();
            set.addAll(list);
            System.out.println(set.size());
       }
    }

选项:[编译运行都正常,输出3, 编译通过,运行时异常, 编译运行都正常,输出4, 编译不通过]
[单选题]Java的集合类主要由两个接口派生而出:Collection和Map( )

选项:[错, 对]
[多选题]

2.下列说法正确的是( )(多选)

A. CollectionListSetQueue 的父接口.

B. List 是按对象的进入顺序进行保存对象,而不做排序或编辑操作

C.List集合代表一个无序集合,集合中每个元素都有其对应的顺序索引

D. ArrayList是一个基于字典实现的链表(List)。

选项:[List 是按对象的进入顺序进行保存对象,而不做排序或编辑操作, List集合代表一个无序集合,集合中每个元素都有其对应的顺序索引,  ArrayList是一个基于字典实现的链表(List, CollectionListSetQueue 的父接口.]
[单选题] HashSet集合判断两个元素相等的标准是通过equals方法,并且两个对象的hashCode方法返回值也相等( )

选项:[对, 错]
[单选题]

下列说法错误的是

A.集合类都位于java.util包下

B.List集合添加元素,List的长度可变。Map集合的每项数据都由两个值组成

C.访问Map集合中的元素,可以根据每项元素的key来访问其value

D.访问List集合中的元素,可以直接根据元素的Key来访问.

选项:[访问List集合中的元素,可以直接根据元素的Key来访问., List集合添加元素,List的长度可变。Map集合的每项数据都由两个值组成, 集合类都位于java.util包下, 访问Map集合中的元素,可以根据每项元素的key来访问其value]
[单选题]对于枚举Enumeration和Iterator接口,Iterator接口使用内存更少,Enumeration接口相对更安全。

选项:[错, 对]

温馨提示支付 ¥1.00 元后可查看付费内容,请先翻页预览!
点赞(0) dxwkbang
返回
顶部