第六章 集合类: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. Collection是List、Set和Queue 的父接口.
B. List 是按对象的进入顺序进行保存对象,而不做排序或编辑操作
C.List集合代表一个无序集合,集合中每个元素都有其对应的顺序索引
D. ArrayList是一个基于字典实现的链表(List)。
[单选题] HashSet集合判断两个元素相等的标准是通过equals方法,并且两个对象的hashCode方法返回值也相等( )
选项:[对, 错]
[单选题]
下列说法错误的是
A.集合类都位于java.util包下
B.List集合添加元素,List的长度可变。Map集合的每项数据都由两个值组成
C.访问Map集合中的元素,可以根据每项元素的key来访问其value
D.访问List集合中的元素,可以直接根据元素的Key来访问.
[单选题]对于枚举Enumeration和Iterator接口,Iterator接口使用内存更少,Enumeration接口相对更安全。选项:[错, 对]
温馨提示支付 ¥1.00 元后可查看付费内容,请先翻页预览!