java集合框架:
1. 什么是框架:类库的集合
List、Set、Map是这个集合体系中最主要的三个接口。
其中List和Set继承自Collection接口。
Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。
Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。
SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。
Collection
接口适用于Java集合中的Set和List(这两个类直接继承了这个接口),提供了一些通用操纵的静态方法。
Collection定义了集合框架的共性功能。
1,添加
add(e);
addAll(collection);
add方法的参数类型是Object。以便于接收任意类型对象。集合中存储的都是对象的引用(地址)
2,删除
remove(e);
removeAll(collection);
clear();
3,判断。
contains(e);
isEmpty();
4,获取
iterator();
size();
5,获取交集。
retainAll();
6,集合变数组。
toArray();
Iterator
接口隐藏了底层集合的数据结构,对外提供了遍历各种数据类型集合的统一接口。由collection集合的iterator得到一个Iterator。语法如下:
ArrayList a = new ArrayList();Iterator it = a.iterator();
boolean hasNext() 如果仍有元素可以迭代,则返回 true。
next() 返回迭代的下一个元素。
remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
迭代器是取出方式,会直接访问集合中的元素。所以将迭代器通过内部类的形式来进行描述。通过容器的iterator()方法获取该内部类的对象。
import java.util.*; class Test { public static void main(String[] args) { ArrayList a=new ArrayList(); ArrayList a1=new ArrayList(); a1.add("java 02"); Test t=new Test(); a.add("java 01"); a.add("java 02"); a.add(3); a.add('e'); a.add(3.145); a.add(t); sop(a+"\n"+"a.szie="+a.size()); a.removeAll(a1); Iterator it=a.iterator(); while(it.hasNext()) { sop(it.next()); it.remove(); } sop(a+"\n"+"a.szie="+a.size()); } public static void sop(Object obj) { System.out.println(obj); } }结果:
[java 01, java 02, 3, e, 3.145, Test.Test@1e3cd51]
a.szie=6
java 01
3
e
3.145
Test.Test@1e3cd51
[]
a.szie=0