Java基础知识➣集合整理(三)
概述
集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:
- 接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。
- 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。
- 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
集合接口
继承的接口列表如下
序号 | 接口描述 |
1 |
Collection 接口 |
2 |
List 接口 |
3 |
Set |
4 |
SortedSet |
5 |
Map |
6 |
Map.Entry |
7 |
SortedMap |
8 |
Enumeration |
继承接口类
实现接口的集合类如下。枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。hasMoreElements()返回是否还有值,nextElement()获取下一个对象。Vector大小能根据需要动态的变化。通过elements()获取Enumeration对象。栈(Stack)实现了一个后进先出(LIFO)的数据结构.Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。通过keys()获取Enumeration对象。Properties 继承于 Hashtable.Properties 类,表示了一个持久的属性集。getProperty(str)获取对象。属性列表中每个键及其对应值都是一个字符串。keySet()获取set对象,Iterator itr=states.iterator();itr.hasNext()获取是否下一个对象,通过itr.next()获取下一个值。
序号 | 类描述 |
1 |
AbstractCollection |
2 |
AbstractList |
3 |
AbstractSequentialList |
4 |
LinkedList 解决方法就是在创建List时候构造一个同步的List。例如:Listlist=Collections.synchronizedList(newLinkedList(...));LinkedList 查找效率低 |
5 |
ArrayList 删除效率低。 |
6 |
AbstractSet |
7 |
HashSet |
8 |
LinkedHashSet |
9 |
TreeSet |
10 |
AbstractMap |
11 |
HashMap |
12 |
TreeMap |
13 |
WeakHashMap |
14 |
LinkedHashMap |
15 |
IdentityHashMap |
使用实例
public static void EnumArrayList() { List<String> _list=new ArrayList<String>(); _list.add("Hello"); _list.add("World"); for(String str:_list) { System.out.println(str); } Iterator<String> ite=_list.iterator(); while(ite.hasNext()) { System.out.println(ite.next()); } Map<String,String> map=new HashMap<String,String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); // Set stet=map.keySet(); // Iterator stor=stet.iterator(); // while(stor.hasNext()) // { // String valekey=(String)stor.next(); // System.out.println(valekey+":"+map.get(valekey)); // } // for(String key:map.keySet()) // { // System.out.println("key= "+ key + " and value= " + map.get(key)); // } for(String v:map.values()) { System.out.println("value= " + v); } Iterator<Map.Entry<String, String>> it=map.entrySet().iterator(); while(it.hasNext()) { Map.Entry<String, String> entry=it.next(); System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } }