Java集合技巧

集合的一些技巧:
 
需要唯一吗?
需要:Set
需要制定顺序: 
需要: TreeSet
不需要:HashSet
但是想要一个和存储一致的顺序(有序):LinkedHashSet
不需要:List
需要频繁增删吗?
需要:LinkedList
不需要:ArrayList
 
如何记录每一个容器的结构和所属体系呢?
 
看名字!
 
 
List
|--ArrayList
|--LinkedList
 
Set
|--HashSet
|--TreeSet
 
后缀名就是该集合所属的体系。
 
前缀名就是该集合的数据结构。
 
看到array:就要想到数组,就要想到查询快,有角标.
看到link:就要想到链表,就要想到增删快,就要想要 add get remove+frist last的方法 
看到hash:就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashcode方法和equals方法。 
看到tree:就要想到二叉树,就要想要排序,就要想到两个接口Comparable,Comparator 。
 
而且通常这些常用的集合容器都是不同步的。 
 
 
============================================
 
Map:一次添加一对元素。Collection 一次添加一个元素。
Map也称为双列集合,Collection集合称为单列集合。
其实map集合中存储的就是键值对。 
map集合中必须保证键的唯一性。 
 
 
常用方法:
1,添加。
value put(key,value):返回前一个和key关联的值,如果没有返回null.
 
2,删除。
void  clear():清空map集合。
value remove(key):根据指定的key翻出这个键值对。 
 
3,判断。
boolean containsKey(key):
boolean containsValue(value):
boolean isEmpty();
 
4,获取。 
value get(key):通过键获取值,如果没有该键返回null。
当然可以通过返回null,来判断是否包含指定键。 
int size(): 获取键值对的个数。 
 
Map常用的子类:
|--Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。
|--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。 
|--HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
|--TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。 
原文地址:https://www.cnblogs.com/xiarongjin/p/8309729.html