【集合框架】

        集合是包含多个对象的简单对象,所包含的对象称为元素。

        Set(集)中元素不允许重复。

        List(列表)中元素允许重复,有下标,有序。

        Map(映射)中每个元素包含一对,键不允许重复,值允许重复。

1、Collection接口        

返回值描述
booleanadd(E e)添加元素                                addAll(Collection  c)添加集合中所有元素
voidclear()清空所有元素
booleancontains(E e)是否包含元素                  containsAll(Collection c)是否包含集合中所有元素
booleanequals(Object o)比较         注:当对象类型为自定义时,注意是否要重写equals方法。
inthashCode()哈希值
IteratorIterator()迭代器,遍历集
booleanremove(Object o)移除元素                  removeAll(Collection c)移除交集元素
intsize()返回集合大小
boolean

tetainAll(Collection c)保留交集,其他移除

Objict[]toArray()返回数组

1.1、列表(List)

返回值描述
voidadd(int index,E e)指定位置添加元素
Eget(int index)返回指定位置元素
intindexOf(Object o)返回第一个相同元素的索引,无返回-1
booleanisEmpty()是否为空
intlastIndexOf(Object o)返回最后一个相同元素索引,无返回-1
Eremove(int index)移除指定位置的元素
Eset(int index,element)替换某位置的元素
ListsubList(int fromindex , int toIndex)返回指定位置的元素列表

1.2、集(Set)

        方法基本与Collection接口相同。

2、映射(Map)      

返回值描述
voidclear()清空
booleancontainsKey(Object o)判断是否包含对应内容的键
vooleancontainsValue(Object o)判断是否包含对应内容的值
booleanequals(Object o)比较对象与映射是否相等
inthashCode()返回哈希值
booleanisEmpty()是否为空
Vget(Object key)根据键获取对应的值,不包含返回null
Set<K>keySet()将Map中的所有键返回成一个集
Vput(K key,V value)将指定的键和指定的值关联
voidputAll(Map m)将m中的所有映射关系复制到此映射中
intsize()返回映射的长度
V

remove(Object key)移除对应的键值对

Collection

valudes()返回映射中值的Collection视图

3、List和Set接口的实现

        3.1、ArrayList

        ArrayList的底层是用数组实现的,相当于动态数组。是一种线性数据结构

        容量默认是10。默认是空的Object[]。

        数组的容量每次增长的长度为原来的0.5(oldCapacity>>1)。

        注:动态数组的长度是随之变化的,当遍历时添加或者删除会影响modCount导致ConcurrentModificationException。

        例:当表中的d移除时, 需要将地址为004的值改为005的值,将005的值改为006的值,添加和删除的操作对数组列表的影响较大,速度慢。

        3.2、LinkedList

        LinkedList是一个双向的链表结构,每个对象有三个元素(前一个对象的地址,当前对象的值,后一个对象的地址)。

        例:点表中d对象需要移除时,将a对象和c对象的前后地址修改即可。故插入的速度和删除的速度很快。

        3.3、HashSet

        HashSet类是根据哈希算法来存取集合中的对象,具有很好的存取和查找功能。

        3.4、TreeSet

         TreeSet使用二叉树实现。

        3.5、排序

        主要针对TreeSet。通过调用compareTo方法()比较集合中对象的大小排序。

4、Map接口的实现

        在HashMap中,每个(Node)节点都有他的hashCode值,Key(键),Value(值),next(指向下一个Node)。而TreeMap中则是将next升级为left、right、parent,满足数的结构。

5、泛型

        Java1.5开始引入泛型。泛型提供了编译时的类型安全检查机制。

        运用泛型编译器不建议使用原生类型,而是要指明具体类型(如:List<String>)以便编译器做参数检查。

        在编一阶段会采取擦除机制,将泛型转换为原生类型List<String>,虚拟机中没有泛型,只有普通类和普通方法。

6、Collections工具类

        public static void sort(List<T> list)升序排序

        public static int binarySearch(List list,T key)二分法查找(注意升序)

        public static T min(Collection<T> coll)最小元素

        public static T max(Collection<T> coll)最大元素

        public static boolean disjoint(Collection<?> coll1,Collection<?> coll2)无交集返回true

        public static void reverse(List<?> list)反转集合

        public static void shuffle(List<?> list)随机交换位置

        public static void swap(List<?> list,int a,int b)交换指定位置元素

        public static void rotate(List<?> list,int distance)轮转列表指定元素

        public static void fill(List<T> list,T obj)列表元素全部替换为obj

        public satic boolean replaceAll(List<T> list,T oldval,T newval)使某个值替换所有对应值。

        public static void copy(List<T> desc,List<T> scr)将指定列表替换到目标列表

        public static int frequency(Collection<?> c,Object o)统计o元素在c出现的次数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值