A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 威威是超人 中级黑马   /  2016-10-5 17:57  /  585 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合分为单例集合和多例集合
(单例)Collection 接口:list接口  set接口
Collection:
                方法:        增 add
                                删 remove,clear
                                查 isEmpty,contins,size
                其他方法:
                                addAll:将一个集合所有元素添加到另外一个集合,谁调用,谁改变
                                removeAll:从一个集合中移除另一个结合的所有元素,谁调用谁改变
                                containsAll:判断一个集合是否全部包含另一个集合的所有元素
                将集合转为数组:Collection类的 toArray
                将数组转为集合:Arrays类中的 asList
                迭代器:就是一个个去访问集合中的元素,Iterator iterator();
                Collection 的超级接口是Iterable;所以Collection具有iterator()方法,iterator()方法是返回一个Iterator对象。
                Iterator 的方法有,hasNext():是否有元素存在
                                                   next():取集合中的元素


list接口:
实现类有:ArrayList,Vector,LinkedList
        特点:        1.有序,是指元素添加顺序和输出顺序的一致
                        2.可以根据索引来访问元素,可以得到指定下表的元素
                        3.元素可以重复


        特有方法:        增 add
                                删 remove,返回的是删除的元素
                                改 set 把谁替换返回谁
                                获取get获取
        特有迭代器:ListIterator,ListIterator是Iterator的子接口
        四种遍历方式:
                                方式1:
                                                Object[] toArray();
                                方式2:
                                                Iterator iterator();
                                方式3:
                                                Object get(int index)
                                方式4:
                                                for(:){}
        解决并发修改异常:
                               
                                        迭代器自己遍历自己添加
                                        集合自己遍历自己添加
        Arrays类的一个方法:asList():将数组转为集合
        常见的数据结构:
                                        栈:先进后出
                                        队列:先进先出
                                        数组:挨个存放,只要有下表就能访问,但是插入时会有大量数据移动
                                                访问方便,速度快,但是,插入和删除时,效率低,所以以查询为主。
                                        链表:查询速度慢,每次都从头开始寻找,但是增删效率高
                                        数:二叉树,有两个分叉。用于排序和查找
                                        哈希表:hash存储,查找最快的方式
ArrayList:底层结构是数组,查询快,增删慢,线程不安全,效率高
Vector:底层结构是数组,查询快,增删慢,线程安全,效率低
                特有方法:
                                增 addElement
                                获取 elementAt,指定下标的元素
                                枚举 elements
LinkedList:底层结构是链表,查询慢,增删快,线程不安全,效率高
        特有方法:
                        增 addFirst,addLast
                        获取 getFirst,getLast
                        删除 removeFirst,removeLast
泛型:在Java的JDK中见到<>就是泛型,
                泛型类:就是把泛型定义在类上
                泛型方法:把泛型定义在方法上
                泛型接口:把泛型定义在接口上


set:接口,实现类有 HashSet,TreeSet
        特点:不包含重复元素,无序性是指,输入顺序和输出顺序的不一致性。


HashSet:底层结构是哈希表
                特点:不保证有序(不保证元素插入的顺序和输出的顺序一致)
                      保证元素的唯一性
                保证元素唯一性:
                必须重写,HashCode和equals方法。


TreeSet:底层结构是二叉树
        特点:        1.使用元素的自然顺序对元素进行排序。
                        2.保证元素的唯一性。
        要保证元素的唯一性:
                        在类中:要实现接口Compareabl接口中的CompareTo方法
                         1:自然排序
                                public TreeSet(); //实现Comparable接口
                        (比较器)接口传参:匿名内部类,new Comparator(){
                                public void compare(){
                                }
                        }
                         2:比较器排序
                            public TreeSet(Comparator<? super T> comparator); //实现Comparator接口




       
               
Map 集合:        将键映射到值的对象
                        一个映射不能包含重复的键
                        每个键最多只能映射到一个值
        方法:        增,改        put
                        删        remove,clear
                        判断        containsKey,containsValue,isEmpty
                        获取        size,get,keySet,values,entry
        遍历方式1:
                        Set<> set = map.keySet();
                        for(  : ){
                                values =
                        }
        方式2:
                        Set<Map.Entry<k,v>> entrySet()
                                        k getKey
                                        v getValue
                        注意:enrty是Map的一个内部接口
                                        Interface Map{
                                                interface Entry{
                                                }
                                        }


HashMap:只是存键值对,不需要对键排序,就用该集合
                键的底层结构:Hash表
                特点:键唯一,无序
        特点:1.建是哈希表结构,可以保证建的唯一性。
                        HashMap的建使用HashSet集合来处理,所以自定义对象,必须重写equals和hashCode方法




TreeMap:存键值对,同时需要对键排序,则用该集合               
                键的底层结构:二叉树
                特点:键唯一,有序


        特点:        1.TreeMap的底层是二叉树,TreeMap的建使用TreeSet来保证唯一性。所以自定义对象需要重写Comparable或者Comparator中的方法
                        2.TreeMap可以对建进行排序
Arrays类:操作数组的工具类
Collections类:操作集合的工具类,该类所有方法都是静态的


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马