Java Collection框架是什么?
2017-06-04 22:55
211 查看
Java Collection框架中包含了大量集合接口以及这些接口的实现类和操作他们的方法。主要提供了List(列表)、Queen(队列)、Ser(集合)、Stack(栈)和Map(映射表)。其中,List(列表)、Queen(队列)、Ser(集合)、Stack(栈)都是继承Collection接口。
下面介绍Set、List和Map3个接口。
1.Set表示数学意义上的集合概念(即不会出现重复元素)。该接口有两个实现类:HashMap、TreeMap(两个接口都不会出现重复的元素)。
(1). HashMap
输出结果为:[1, 3, 4, 5, 6]。
说明一下:添加了6个元素,其中添加了两个1,输出的时候只输出了一个1。添加对象的时候,是无序添加的,但是还是按顺序输出的(注:jdk老版本可能不会排序)。
(2) TreeSet
TreeSet是实现了SortedSet接口的,所以TreeSet中的容器是有序的。**
输出结果:[1, 12, 78, 99]
说明:重复元素不会重复输出,具有排序功能。
2.List称为有序(注意:这个有序是只按照顺序存放,不是说放进去的元素会排序)的Collection。List能付每个列表中的元素的插入和删除位置进行精确的控制,还可以保存重复的对象。
(1)LinkedList,实现了List接口
结果:[127, 25, 25, 567]
说明:大小无序放进去,放进来两个25元素。重复的元素并没有隐藏且输出的顺序是按照添加元素的信息输出来的。
既然List能够对元素的插入和元素的位置进行精确的控制,那么下面这段代码应该能够说明这点。
结果:
[127, 25, 25, 567]
[127, 25, 25]
[127, 25, 567, 25]`
(2)ArrayList
输出结果:[A, E, C, B, C]
3.Vector
输出结果:[5, 2, 3, 2, 1]
3.Map
Map提供了一个从键映射到值的数据结构,它可以保存键值对象,其中值可以重复,但是键是唯一的。Java中有很多实现该接口的类:HashMap、TreeMap、LinkedHashMap等。虽然它们都实现了相同的接口,但是执行效率不同。
(1)HashMap
结果:{1=A, 2=C, 4=A, 5=E}
说明:HashMap由(key,value)组成,key就相当于一个钥匙,value就相当于一个门,一个钥匙对应一个门。多个钥匙可以对应同一个门,但是多个门不能用同一把钥匙打开。
在上面的测试中,put进了5个元素,其中有key=2,出现了两次,但是取值是取最后的2对应的值。而value可以重复出现。总的来说,就是key不能重复。
(2)TreeMap
结果:{1=E, 2=D, 3=C, 4=B, 5=A}
说明:TreeMap具有自动排序功能,会按照key的值大小进行排序。
总结:
1.Set接口的实现有HashSet,TreeSet。Set特点:不会有重复元素
2.List接口的实现有LinkedList、ArrayList、Vector。List特点:存放按照顺序存放。
3.Map接口的实现HashMap、TreeMap。Map特点:由键映射值,键不能重复,值可以重复。
4.Tree接口自带sorted()方法,所以TreeSet、TreeMap都是自带元素排序功能的。
———-20170926补充
关于java中“:”的使用方法
添加的用法还是一样,但是遍历的时候使用“:”来进行for(对象类型:集合(数组也可以)){
…………………
}
下面介绍Set、List和Map3个接口。
1.Set表示数学意义上的集合概念(即不会出现重复元素)。该接口有两个实现类:HashMap、TreeMap(两个接口都不会出现重复的元素)。
(1). HashMap
public static void main(String[] args) { Set set=new HashSet() ; set.add(1); set.add(1); set.add(3); set.add(4); set.add(6); set.add(5); System.out.println(set); }
输出结果为:[1, 3, 4, 5, 6]。
说明一下:添加了6个元素,其中添加了两个1,输出的时候只输出了一个1。添加对象的时候,是无序添加的,但是还是按顺序输出的(注:jdk老版本可能不会排序)。
(2) TreeSet
TreeSet是实现了SortedSet接口的,所以TreeSet中的容器是有序的。**
Set treeSet=new TreeSet(); treeSet.add(78); treeSet.add(12); treeSet.add(12); treeSet.add(99); treeSet.add(1); System.out.println(treeSet);```
输出结果:[1, 12, 78, 99]
说明:重复元素不会重复输出,具有排序功能。
2.List称为有序(注意:这个有序是只按照顺序存放,不是说放进去的元素会排序)的Collection。List能付每个列表中的元素的插入和删除位置进行精确的控制,还可以保存重复的对象。
(1)LinkedList,实现了List接口
public static void main(String[] args) { LinkedList`<Integer>` linkedList=new LinkedList<>(); linkedList.add(127); linkedList.add(25); linkedList.add(25); linkedList.add(567); System.out.println(linkedList); }
结果:[127, 25, 25, 567]
说明:大小无序放进去,放进来两个25元素。重复的元素并没有隐藏且输出的顺序是按照添加元素的信息输出来的。
既然List能够对元素的插入和元素的位置进行精确的控制,那么下面这段代码应该能够说明这点。
public static void main(String[] args) { LinkedList<Integer> linkedList=new LinkedList<>(); linkedList.add(127); linkedList.add(25); linkedList.add(25); linkedList.add(567); System.out.println(linkedList); //删除第3个位置的元素 linkedList.remove(3); System.out.println(linkedList); //在第2个位置插入567 linkedList.add(2, 567); System.out.println(linkedList); }
结果:
[127, 25, 25, 567]
[127, 25, 25]
[127, 25, 567, 25]`
(2)ArrayList
ArrayList<String> arrayList=new ArrayList<>(); arrayList.add("A"); arrayList.add("E"); arrayList.add("C"); arrayList.add("B"); arrayList.add("C"); System.out.println(arrayList);
输出结果:[A, E, C, B, C]
3.Vector
Vector<Integer> vec 4000 tor=new Vector<>(); vector.add(5); vector.add(2); vector.add(3); vector.add(2); vector.add(1); System.out.println(vector);
输出结果:[5, 2, 3, 2, 1]
3.Map
Map提供了一个从键映射到值的数据结构,它可以保存键值对象,其中值可以重复,但是键是唯一的。Java中有很多实现该接口的类:HashMap、TreeMap、LinkedHashMap等。虽然它们都实现了相同的接口,但是执行效率不同。
(1)HashMap
public static void main(String[] args) { HashMap<Integer, String> hashMap=new HashMap<>(); hashMap.put(1, "A"); hashMap.put(2, "B"); hashMap.put(2, "C"); hashMap.put(4, "A"); hashMap.put(5, "E"); System.out.println(hashMap); }
结果:{1=A, 2=C, 4=A, 5=E}
说明:HashMap由(key,value)组成,key就相当于一个钥匙,value就相当于一个门,一个钥匙对应一个门。多个钥匙可以对应同一个门,但是多个门不能用同一把钥匙打开。
在上面的测试中,put进了5个元素,其中有key=2,出现了两次,但是取值是取最后的2对应的值。而value可以重复出现。总的来说,就是key不能重复。
(2)TreeMap
TreeMap<Integer , String> treeMap=new TreeMap<>(); treeMap.put(5, "A"); treeMap.put(4, "B"); treeMap.put(3, "C"); treeMap.put(2, "D"); treeMap.put(1 ,"E"); System.out.println(treeMap);
结果:{1=E, 2=D, 3=C, 4=B, 5=A}
说明:TreeMap具有自动排序功能,会按照key的值大小进行排序。
总结:
1.Set接口的实现有HashSet,TreeSet。Set特点:不会有重复元素
2.List接口的实现有LinkedList、ArrayList、Vector。List特点:存放按照顺序存放。
3.Map接口的实现HashMap、TreeMap。Map特点:由键映射值,键不能重复,值可以重复。
4.Tree接口自带sorted()方法,所以TreeSet、TreeMap都是自带元素排序功能的。
———-20170926补充
关于java中“:”的使用方法
Set mSet=new HashSet<>(); mSet.add(1); mSet.add(2); mSet.add(5); mSet.add(9); for(Object o:mSet){ if((Integer)o>2){ System.out.println(o); } }
添加的用法还是一样,但是遍历的时候使用“:”来进行for(对象类型:集合(数组也可以)){
…………………
}
5 9
相关文章推荐
- java 集合框架(Collection)和数组的排序
- java 集合框架(Collection)和数组的排序
- 黑马程序员_java基础6-集合框架Collection和泛型
- Java基础之集合框架(一)--Collection、List、LinkedList、HashSet
- java collections读书笔记(8)collection框架总览(1)
- Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
- 黑马程序员——java第十四、五、六天:集合框架(一:Collection、Map)
- java中collection是什么?怎么理解?怎么使用?
- Java基础之集合框架(一)--Collection、List、LinkedList、HashSet
- Java 集合框架-Collection
- Java Collection框架:你可能不知道的一些小知识
- Java Collection 框架
- 关键字: java 集合框架 collection, arraylist, hashmap
- 黑马程序员_JAVA学习日记_JAVA中API:集合框架1(Collection,List,Set及其子类和迭代器的应用)
- Java 集合框架(Collection)和数组的排序
- [java]collection(容器类)框架图
- java 集合框架(Collection)和数组的排序
- Java 集合框架(Collection)和数组的排序
- 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接口?
- Java--面向对象之七:Collection集合框架