集合

来源:互联网 发布:白贺翔 java架构师 编辑:程序博客网 时间:2024/05/18 02:16
(排序规则:就是实现Comparable<T>接口,实现接口的抽象方法compartTo(T o))
(八大基本元素对应的类都有排序规则)
掌握:
List(接口)
ArrayList(实现类)(实际开发用的多)
(查询多)(底层为数组)

LinkedList(实现类)
(更新多)(底层为链表)

相同点
1.功能相同
2.顺序与加入顺序相同(顺序一定)
3.有下标,可手动排序
4.同一元素可加入多次
5.元素可无排序规则,有规则的可手动sort()排序,无规则的不能手动sort()方法
6.可使用Collections.sort(list)方法(顺序)排序(以ASCII码排序)
Collections.reverse(list);(倒序排序)
Collections.shuffle(list);(洗牌)
必要条件:list所属类必须实现Comparable接口且要实现其抽象方法compare(T o);
compare(T o);方法是用于实现排序规则的
(这是一个回调方法,当前对象、参数所代表的对象,共两个对象)

不同点:
ArrayList 
底层为数组,适用于查询
LinkedList
底层为链表,适用于数据更新(修改,添加,删除)

这两个实现类都只有List接口的抽象方法的实现-->完全可以使用List去引用




Set(接口)
        HashSet(实际开发用的多)
        TreeSet
1.相同点
1)没有下标
2)方法相同(功能不同)
3)不可手动排序
4)元素顺序与加入顺序无关
5)同一元素不可加入多次
2.不同点
1)HashSet:
元素顺序不可测,与加入顺序无关(与数学上的集合概念一样),
对元素无要求,
底层是Hash算法,所以查询速度快(没有ArrayList快)
2)TreeSet:
元素顺序与元素的排序规则有关,
对元素有要求,即要求元素必须有排序规则,
底层算法是树,查询慢,插入快



Map(接口)
        HashMap
        TreeMap
(两个的底层与Set中的一样,实际上HashSet的底层是HashMap,HashMap的底层是Hash算法;
TreeSet的底层是TreeMap,TreeMap的底层是二叉树)

1.相同点
        1)元素都是键值对
2)没有下标
3)方法相同(功能不同)
4)不可手动排序
5)元素顺序与加入顺序无关
6)同一元素不可加入多次

2.不同点
1)HashMap:
元素顺序不可测,与加入顺序无关(与数学上的集合概念一样),
对元素无要求,
底层是Hash算法,所以查询速度快(没有ArrayList快)
2)TreeMap:
元素顺序与元素的键的排序规则有关,
对元素的键有要求,即要求元素的键必须有排序规则,
底层算法是树,查询慢,插入快




0 0
原创粉丝点击