Java开发

Java集合框架

2018-02-28  本文已影响1人  Tycc

Java集合框架(Java Collections Framework)是存放大量对象的容器,被广泛使用。Java里包含这四种集合类:Vector, Stack, Hashtable, Array
集合中存放的是对象的引用。

Java1.2开始提供集合框架,这包括:

Iterator接口

取代了Enumeration,可以简单地理解为遍历,提供了一个标准化遍历各类容器里面的所有对象的设计模式。方法:

Iterator it = collection.iterator(); // 获得一个迭代起点
while(it.hasNext()) {
  Object obj = it.next(); // 得到下一个元素
}

ListIterator是Iterator的子接口,区别在于,只能用于List及其子类型;有add方法;可以实现逆向(顺序向前)遍历;可以定位当前索引的位置;可以实现对象的修改。(参考:JAVA中ListIterator和Iterator详解与辨析

List接口

有序,允许相同元素,有索引
除了具有Collection接口必备的iterator()方法外,List还有一个listIterator()方法,返回一个 ListIterator接口。
实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。

Set接口

无序
不包含重复元素
取出只能是Iterator

  SortedSet<Item> sortByDescription = new TreeSet<Item>(new
         Comparator<Item>()
         {  
            public int compare(Item a, Item b)
            {  
               String descrA = a.getDescription();
               String descrB = b.getDescription();
               return descrA.compareTo(descrB);
            }
         });

Queue接口

无null
方法:add,addall, remove, clearelement

Map接口

没有继承Collection接口
提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。
put(Object key, Object value) 将指定值与指定键相关联
entrySet()返回 Map 中所包含映射的 Set 视图。Set 中的每个元素都是一个 Map.Entry 对象,可以使用 getKey() 和 getValue() 方法(还有一个 setValue() 方法)访问后者的键元素和值元素
keySet()返回 Map 中所包含键的 Set 视图。删除 Set 中的元素还将删除 Map 中相应的映射(键和值)
values()返回 map 中所包含值的 Collection 视图。删除 Collection 中的元素还将删除 Map 中相应的映射(键和值)

集合对象排序接口Comparator

实现此接口的类可以进行排序,需要实现compare方法。
基本数据类型实现了这个接口,调用Collections.sort(list)进行排序;
如果Comparator只用一次,可使用匿名类。

参考:

上一篇 下一篇

猜你喜欢

热点阅读