Java Collection框架是什么?

来源:互联网 发布:c 二维数组 键值 编辑:程序博客网 时间:2024/05/16 04:48

Java Collection框架中包含了大量集合接口以及这些接口的实现类和操作他们的方法。主要提供了List(列表)、Queen(队列)、Ser(集合)、Stack(栈)和Map(映射表)。其中,List(列表)、Queen(队列)、Ser(集合)、Stack(栈)都是继承Collection接口。

下面介绍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> vector=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(对象类型:集合(数组也可以)){
…………………
}

59
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老师针对我孩子怎么办 小孩动不动就哭怎么办 孩子太拧应该怎么办 孩子贪玩不爱学习怎么办 高二了还不学怎么办 小朋友不喜欢上幼儿园怎么办 一岁半的宝宝不听话怎么办 老公是个窝囊废怎么办 幼儿园老师不喜欢家长怎么办 老师讨厌学生了怎么办 一个舍友很讨厌怎么办 家长对老师不满怎么办 教师被家长辱骂怎么办 如果老师喜欢自己怎么办 孩子不思进取逃避学习怎么办 老师拿孩子泄愤怎么办 老师对小孩不好怎么办 孩子被老师骂怎么办 孩子幼儿园被打怎么办 两个家长吵架老师怎么办 家长和老师矛盾怎么办 孩子特别害怕老师怎么办? 老师排挤孤立孩子怎么办 很害怕一件事怎么办 高中老师误会我怎么办 家长讹老师老师怎么办 小孩子老说头疼怎么办 孩子总是否定自己怎么办 孩子总是否定别人怎么办 老师屏蔽家长该怎么办 初二学生学疲劳怎么办 孩子不愿补英语怎么办 培训班孩子不学怎么办 小孩不想去学校怎么办 讨厌父母的性格怎么办 老师揪孩子耳朵怎么办 老师整天骂孩子怎么办 教师被学生骂怎么办 幼儿园学生骂老师怎么办 学生骂老师外号怎么办 小孩上课很多嘴怎么办