美文网首页
集合学习

集合学习

作者: 丶失落叶 | 来源:发表于2019-10-16 21:44 被阅读0次
    /

    一、什么是集合

    java集合类存放于java.until包下,是用来存放数据的一种容器。

    二、集合与数组的区别

    1.数组长度不可变,集合的长度可变;

    2.数组可以存放基本数据类型,也可以是引用数据类型,而集合只可以存放引用数据类型;

    3.数组只可以存放同一种类型;而集合可以存放不同类型的数据。

    三、collection的方法

    四、常用集合的分类

    五、List和Set的区别

    1.List是有序的,Set是无序的;

    2.List可以重复,Set元素唯一;

    3.List可以通过过索引直接获取元素,Set不可以,set需要利用迭代器获取元素

    4.List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变;

    Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

    六、List

    1.list的方法:

    在指定位置添加元素:void     add(String   item, int index);

    在指定位置删除元素:void     remove(int position);

    2.分类:

    a.ArrayList:底层数据结构是数组,查询快,增删慢;线程不安全,效率高  ——(常用)

    b.LinkList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高

    c.Vector:底层数据结构是数组,查询快,增删满,线程安全,效率低。

    3.ArrayList与LinkList的比较:

    a.ArrayList是基于数组实现,linklist是基于链表实现的;

    b.ArrayList查询快,增删慢;LinkList查询慢,增删快

    七、Set

    1.HashSet:

    底层数据结构用哈希表实现,元素存取无序,需要使用迭代器,数据唯一。线程不安全,效率高,可以存放null值,但是只能存放一个。元素的排列也是无序的。

    元素的唯一性是通过重写hashCode()和equals()方法来保证

    2.LinkedHashSet

    底层数据结构是哈希表和链表,有序且唯一

    通过哈希表保证了唯一;通过链表保证了有序

    3.TreeSet

    底层数据结构是红黑树,存取无序,依赖迭代器,数据唯一。线程非安全。

    TreeSet元素排序是有序的   (符号 > 数字(0-9)> 字母(a-z) > 汉字)。

    注:TreeSet自然排序通过CompareTo(Object obj)方法实现, 如果需要定制排序的话,应该使用Comparator接口,实现 int compare(To1,To2)方法

    八、Map

    Map是由键值对组成的集合,提供了从key到value的映射。map中一个key对应一个value,所以key值不可以相同,value可以相同。

    1.HashMap

    hashmap是最常用的map,它根据HashCode值存放数据可以根据键直接获取他的值,具有很快的访问速度。

    hashmap在遍历的时候,取得的数据的顺序是完全随机的

    因为键对象不可重复hashmap最多只允许一条记录的键为null,允许多条记录的值为null

    相关文章

      网友评论

          本文标题:集合学习

          本文链接:https://www.haomeiwen.com/subject/forymctx.html