为了在程序中可以保存数目不确定的对象或数据,
Java 提供了一系列特殊的类,这些类可以存储任意类型的对象,
并且长度可变,这些类被统称为集合。集合类都位于java. util包中,
使用时必须导包。
集合按照其存储结构可以分为两大类,
单列集合Collection (一次可添加一个数据)和
双列集合Map (一次可添加2 个数据,或一对数据),
这两种集合的特点具体如下:
● Collection :单列集合类的根接口,用于存储一系列符合某种规则的元素,
它有两个重要的子接口,分别是List 和Set 。
其中,List 的特点是元素有序、元素可重复(有索引)。
Set 的特点是元素无序,而且不可重复。(无索引)
List 接口的主要实现类有ArrayList 和LinkedList ,
Set 接口的主要实现类有HashSet 和TreeSet 。
● Map :双列集合类的根接口,用于存储具有键( Key ) 、值( Value ) 映射关系的元素,
每个元素都包含一对键值,其中键值不可重复并且每个键最多只能映射到一个值,
在使用Map 集合时可以通过指定的Key 找到对应的Value 。
例如,根据一个学生的学号就可以找到对应的学生。
Map 接口的主要实现类有HashMap 和TreeMap 。
Collection 是所有单列集合的父接口,
它定义了单列集合( List 和Set ) 通用的一些方法,
这些方法可用于操作所有的单列集合。Collection 接口的常用如下:
"Collection接口通用方法:"
boolean add ( E e) 添加元素
boolean addAll ( Collection c) 将指定集合中所有元素添加到当前集合
void clear ( ) 清空集合元素
boolean remove ( Object o) 删除指定的元素
boolean remove All ( Collection c) 将指定集合中所有元素从当前集合中删除
boolean isEmpty ( ) 判断集合是否为空
boolean contains ( Object o) 判断集合是否包含指定的元素
boolean contains All ( Collection c) 判断集合中是否包含指定集合所有元素
int size ( ) 获取集合的长度
package sk ;
import java. util. ArrayList ;
import java. util. Collection ;
public class baozhuang {
public static void main ( String [ ] args) {
Collection < String > c1= new ArrayList < > ( ) ; 接口是不能直接创建对象的,所以创建实现类对象
c1. add ( "aa" ) ;
c1. add ( "bb" ) ;
c1. add ( "cc" ) ;
System . out. println ( c1) ; / 结果:[ aa, bb, cc]
Collection < String > c2= new ArrayList < > ( ) ;
c2. add ( "dd" ) ;
c2. add ( "ee" ) ;
c1. addAll ( c2) ;
System . out. println ( c1) ; / 结果是:[ aa, bb, cc, dd, ee]
c1. clear ( ) ;
System . out. print ( c1) ;
System . out. println ( c1. remove ( "aa" ) ) ;
System . out. println ( c1) ;
System . out. println ( c1. remove ( "aabc" ) ) ;
System . out. println ( c1) ;
System . out. print ( c1. removeAll ( c2) ) ;
System . out. print ( c1) ;
System . out. println ( c1. isEmpty ( ) ) ;
c1. clear ( ) ;
System . out. println ( c1) ;
System . out. println ( c1. contains ( "bb" ) ) ;
System . out. print ( c1. contains ( "bbba" ) ) ;
System . out. println ( c1. containsAll ( c2) ) ;
System . out. println ( c1. size ( ) ) ;
}
}