集合
来源:互联网 发布:白贺翔 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码排序)
必要条件:list所属类必须实现Comparable接口且要实现其抽象方法compare(T o);Collections.reverse(list);(倒序排序)Collections.shuffle(list);(洗牌)
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
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- Advanced Architecture Lab
- 后台和前台对json的处理
- Html+Css+Js_之table每隔3行显示不同的两种颜色
- ASP .NET MVC ORM 数据库优先
- java实现数字组合
- 集合
- learning opencv中介绍的一种可以连通区域的函数
- 用户管理 ---> 网页授权
- Unity3d-制作粒子光环特效
- git bash下出现错误Error: Cannot find module 'git目录/node_modules/git包/bin/git包'
- File.io读取文件(五)
- 并查集(Union—find)算法实现简单的迷宫
- C++中map遍历的两种方式
- Mac 使用 NFS 连接 Centos/RedHat 上的共享文件夹