java——Collection框架,Collections
java中的Collection框架表示的是集合,需要管理多个对象时可以使用Collection中的类,框架分为3层
1. 接口 2. 抽象类 3. 实际使用中的类
java集合有6大接口
1. 最基本的是Collection接口
2. 然后是Set,List,SortedSet接口,继承于Collection接口
3. 两外的Map和SortedMap接口,其实准确而言是映射,而不是集合
Collections是集合类的一个工具类,或者说是帮助类,不能实例化,封装了一系列的static方法,可以直接拿来调用,还可以控制线程安全等操作。
List:链表,元素是有序排列的
Collection(接口)——List(接口,可以直接拿来使用)——Vector——Stack(栈,常用的数据结构)
Collection(接口)——List(接口,可以直接拿来使用)——ArrayList(其实就是一个动态的数组,可以方便查找)
Collection(接口)——List(接口,可以直接拿来使用)——LinkedList(是一个双向的链表)
Stack<Integer> st = new Stack<Integer>();
st.push(int);
st.pop(); //返回栈顶并删除元素
st.peak(); //返回栈顶元素,但是不删除
st.isEmpty(); //判断栈是否为空
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(int);
list.get(index); //返回某个index对应的值
list.size(); //返回链表的长度
Queue<Integer> q = new LinkedList<Integer>(); //java中queue是一个接口,因此需要其他实现接口的类来代替
q.offer(int); //近队列
q.poll(); //出队列
q.peek(); //队列头部数据
q.isEmpty(); //判断队列是否为空
Set:集合中的元素不允许重复,方法与Collection完全相同,接口基本一致
Collection(接口)——Set(接口)——HashSet(类)
Collection(接口)——Set(接口)——HashSet(类)——LinkedHashSet(类)
Collection(接口)——Set(接口)——SortedSet(接口)——TreeSet(排序类)
Set的实现其实基础是Map(HashMap),元素不能重复,重复的话会自动覆盖前面的对象
Map:每个元素包含两个部分,键(Key)和值(Value),同一个Map中不允许使用相同的键,但可以只用相同的值
Map(接口)——HashMap(最常用,key值不允许重复,否则会被覆盖。非synchronized的,随着时间推移,元素次序可能会变,允许null键和null值)
Map(接口)——HashTable(比较过时,同步的)
Map(接口)——WeakHashMap
HashMap hm = new HashMap();
hm.containsKey(key);
hm.put(key,value);