java入门11-集合
来源:互联网 发布:若风淘宝店网址多少 编辑:程序博客网 时间:2024/05/22 10:55
1、集合概述
Collection 接口 :Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。
List:List是有序的Collection。用户能够使用索引来访问List中的元素,List中的元素可以是重复的。
Set:Set中的对象不按特定的方式排序,并且没有重复对象,支持数学中的集合操作,如:交、并。
Map:Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象,提供按键对象查找值对象。Map没有继承于Collection接口。
Collection继承关系
|–List(接口)
|–ArrayList
|–Vector
|–LinkedList
|–Set(接口)
|–HashSet
|–TreeSet
ArrayList 底层数据结构是数组,查询快,增删慢。 线程不安全,效率高。 Vector 底层数据结构是数组,查询快,增删慢。 线程安全,效率低。 LinkedList 底层数据结构是链表,查询慢,增删快。 线程不安全,效率高。
2、List的特有功能:
A:添加功能 add(int index,Object obj) B:删除功能 remove(int index) C:获取功能 get(int index) D:迭代器功能 ListIterator listIterator() E:修改功能 set(int index,Object obj) F:判断功能 boolean contains(Object o) G: boolean isEmpty() H: int size() 返回列表中的元素数。
List<String> result = new ArrayList<String>();
3、Set
HashSet集合
A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 相同:继续执行equals()方法 返回true:元素重复了,不添加 返回false:直接把元素添加到集合 不同:就直接把元素添加到集合 C:如何保证元素唯一性的呢? 由hashCode()和equals()保证的
LinkedHashSet
底层数据结构是链表和哈希表 由链表保证元素有序 由哈希表保证元素唯一
TreeSet集合
A:底层数据结构是红黑树(是一个自平衡的二叉树) B:保证元素的排序方式 a:自然排序(元素具备比较性) 让元素所属的类实现Comparable接口 b:比较器排序(集合具备比较性) 让集合构造方法接收Comparator的实现类对象
Set<String> result = new HashSet<String>();
帮助记忆:
ArrayXxx:底层数据结构是数组,查询快,增删慢 LinkedXxx:底层数据结构是链表,查询慢,增删快 HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals() TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序
阅读全文
0 0
- java入门11-集合
- java集合入门
- java集合入门
- java集合类入门
- JAVA集合入门
- Java---集合初入门
- java io入门程序集合
- java集合入门基础理论知识
- Java入门_集合框架
- Java 入门 之 集合 Collection
- Java基础入门-JAVA的集合类
- Java入门学习-深入理解集合
- Java集合框架List入门学习
- java基础-- 集合框架入门 及 List集合
- Java入门第三季-4.Java中的集合框架
- java入门第三季(四、Java中的集合框架)
- java:Java入门第三季第七课:集合框架概述
- Java从入门到精通 - 集合类 List
- Python3-结合百度翻译开放API实现批量翻译
- Codeforces Gym
- 【shell】处理用户输入
- PAT乙级 1064. 朋友数(20)
- wust oj 1867 (输出最长不下降子序列)【最长序列输出类模板】
- java入门11-集合
- 统计十进制数的二进制形式里数字1的个数
- 喷水装置(一)
- 【Angular4.X学习笔记一】对Angular的基础认识
- UVA: I Can Guess the Data Structure!(stl模拟)
- session和cookie的区别和联系,session的生命周期,多个服务部署时session管理
- 静态链接库
- struct struct
- 7.26欢乐爆零赛【字符串】