Conllection 集合框架学习

一、数组、对象数组、集合框架的特点与区别

    数组:只能存同一基本类型的数据(数组长度不变

    对象数组:在数组里面放置对象或者元素集合(数组长度改变

    集合框架:放的是动态对象数组(只能放对象数组长度改变

二、为什么需要集合框架?

如果不知道程序运行时需要多少对象,或者需要更复杂方式存储对象,可以使用集合框架。

Collection集合框架用来存储和操作不同类型的对象组

三、集合框架的体系


Conllection接口下面有三个集合,list ,set,map集合,他们之间的特点与区别

*

使用集合时,用里氏替换原则

List<String> li =new ArrayList<>();

Set<String> set=new HashSet<>();

Map<String , String> map=new HashMap<>();

MAP的键值不能放基本数据类型

*

list

特点:因为list集合有下标,所以储存的值特点有序不唯一

list集合下有vector,array,linked类型

        vactor 特点:有下标,储存格式与array很像,是最早的数组,很安全但是效率低,线程同步,线程安全

        linked 特点:有下标,对数据增删操作很快查询操作很慢,因为是链式储存数据,所以增加删除时数据不进行移位

        array   特点:有下标,对数据查询操作很快,增删操作很慢,因为有序储存所以删除或者修改时,数据要进行移位

        线程同步,线程安全

        线程同步与异步   例子:烧水

        同步:排队进行

        异步:同时进行

                array的增删改查

                        //增加四种

                                

                               add(String e) 是插入一个的元素,插入的类型是根据申明的list集合来的

                               add(int index,String e)是在一个指定位置插入一个元素,插入的类型是根据申明的list集合来的

                               addAll(Conllection<? extends String>c)是在此集合中插入一个集合

                               addAll(int index,Conllection<? extends String>c)是在此集合指定位置中插入一个集合

                        //删除

                            常用 .remove 用来删除一个元素,可以选择下标

                        //修改

                            集合中并"没有"修改方法,但是可以通过删除一个下标的元素,并且在此下标中添加一个元素,完成修改操作

        

set

特点:因为set集合没有下标,所以他数据储存方式是无序唯一

set集合下有hashset类与sortedset接口下的treeset

       hashset :简单的排序

        //增加删除与array类似

        //查看不能for循环只能用foreach还有迭代

       treeset  特点:根据某种(规则)对里面的元素进行排序
        规则1: java.lang.Comparable 
        规则2: java.util.Comparator

map

特点: 没有下标,但是数据储存是以 键值对 存在的,并且键 唯一 不唯一
//增加

map集合中增加只有,put方法map.put(K, V);

//查询

map集合中,查询必须先把map集合的键获取并且转化成set集合获取,然后迭代map.setkey的set集合

在输出Map.get(key),key放迭代出来的键

    Set<String> set=map.keySet();
Iterator<String> it=set.iterator();
while(it.hasNext()) {
System.out.println(map.get(it.next()));
}

---------------------------------------------------------------------------------------------------------

Conllections 类

    Conllections 类

            排序 sort方法

                    collections.sort(list)

            反向输出 reverse方法

                    collections.reverse(list)

            交换 swap方法

                        collections.swap(list, i, j)

            #硬编码不用reverse与swap方法反向输出(假设一个集合有五个int元素)

            for(int i=0; i<list.size()/2 ;i++){

                int a=list.get(i);

                list.remove(i);

                list.add(list.get(i),list.size()-1-i);

                list.remove(list.size()-1-i);

                list.add(list.size()-1-i,a);    

            }

            取最大最小 max方法

            collections.max();

            复制 copy方法
























发布了20 篇原创文章 · 获赞 4 · 访问量 8378

猜你喜欢

转载自blog.csdn.net/qq_41227463/article/details/80184288