集合框架
Collection 接口 Map接口
List接口 Set接口
ArrayList类 LinkedList类 HashSet类 TreeSet类 HashMap类 Hashtable类
List接口定义
List接口是Collection的子接口,它可以保存重复、有序的元素
常用子类有ArrayList Vector
(1)ArrayList
List list=new ArrayList();//可以往集合里面添加对象,字符串,数字等,但是它线程异步,性能较高。
(2)LinkedList
LinkedList表示的是链表操作类,它同时实现了List和Queue接口,存放元素按照先进先出方式排序
LinkedList linkedList=new LinkedList();
(3) Vector
Vector是线程同步的,性能较低,且当容量需要增长时,默认增长为原来的一倍,而ArrayList是原来的一半
List list=new Vector(5);//List接口引用实现类的实例
(4)栈
栈继承了Vector,且对Vector进行了拓展,并采用先进后出的数据存储方式
Stack stack=new Stack();实例化一个栈对象
stack.push("java");
Set接口常用的子类
HashSet类是Set接口的子类,其储存方式是无序不重复的,
Set set=new HashSet();
set.add("apple");//添加元素
Iterator
Iterator是迭代集合的迭代器主要方法有 hasNext() 、 next()
//调用set.Iterator方法返回对set中的元素进行迭代的迭代器
Iterator iterator=set.iterator();
//判断迭代器中是否有元素可迭代
while(iterator.hasNext()){
//iterator.next()是返回迭代器的下一个元素
System.out.println(iterator.next());
Map接口
Map接口不同于Collection、Set、List接口,他是单一操作一对对象,其中的每个元素使用键值对(key-value)的形式存储于集合中的,但是同时又必须设置key和value的类型
(1)HashMap
HashMap采用键值对形式存储元素,且元素存储后是无序的,HashMap中不允许出现重复键,但是可以出现空键和空值
Map map=new HashMap();
map.put("bookName","java");
map.put(null,"nothing");//出现空键
map.put("price",50);
map.put("price",80)//出现重复键时,后面的一个键会覆盖前面的一个键
Collection col=map.values();//取出Map中全部的value
然后进行迭代循环
while(iterator.hasNext()){
//iterator.next()是返回迭代器的下一个元素
System.out.println(iterator.next());
Hashtable
采用键值对的形式存储元素,其元素的存储是无序的,键不允许重复且不允许出现空键和空值,线程同步,效率较低。