JAVA基础:常用集合框架
来源:互联网 发布:后端 知乎 编辑:程序博客网 时间:2024/06/05 14:11
1. 框架:为了解决某一问题,而预先设计的一系列,具有继承和实现关系的类与接口,在使用中,我们只需要在这些类与接口中,选择相应的进行操作,就可以实现其功能
Collection直接衍生出List、set,间接衍生出Map
2. List--列表。特点:线性--有序---外部放入的顺序即为列表存的顺序,所以有下标
最常用子类---ArrayList、LinkedList
ArrayList---底层实现就是使用的数组,它完成对数组的封装
LinkedList--底层实现采用双向链表的结构
ArrayList与LinkedList的使用场景
1、当需要大量做查询某个元素的时候,ArrayList效率高于LinkedList
2、往尾部添加或删除元素,ArrayList效率高于LinkedList
3、往中间添加或删除元素,LinkedList效率高于ArrayList
面试时常常用ArrayList与Vector做辨析
因为:Vector同样是List分支下面的集合类,底层使用的数据结构仍然是数组,提供的方法也是同样的API
差异:1、ArrayList是线程不安全的,效率高的
2、Vector是线程安全的,效率低的
使用场景:Vector在多线程情况下,且可能出现线程安全性问题时,才会用来替
3. ArrayList
<类型>---泛型---表示该集合只能存放该类型及其子类的元素
使用集合对象:
A. 放入元素 add()
B. 得到元素个数size()
C. 可以根据位置获取某个元素get(index)
D. 可以修改某个位置的元素set(index,value)
E. 删除某个位置的元素remove()
F. 对List进行遍历
(1) 普通for循环
(2) for-each循环---JDK1.5之后使用
(3) 集合框架类专用遍历方式---迭代器--Iterator--JDK1.5之前使用
4. LinkList
基本同ArrayList
5. Set--集。特点:不能存放重复元素,无序---外部放入的顺序不是内部存放的顺序,所以没有下标
最常用子类---HashSet
使用集合类对象
A. 放入元素 add()
B. 得到元素个数size()
C. 不可以根据位置获取某个元素(没有下标)
D. 不可以修改某个位置的元素(没有下标)
E. 不可以删除某个位置的元素(没有下标)
F. 可以根据传入的对象,删除Set集合中的重复对象remove(对象,不是下标)
G. 获取Set集合中的元素,只能使用遍历的方式
(1)for-each循环---JDK1.5之后使用
(2)集合框架类专用遍历方式---迭代器--Iterator--JDK1.5之前使用
探究---HashSet是如何判断两个对象是重复对象的
1、两个对象的equals判断必须返回true
2、两个对象的Hash值必须相等
6. Map--映射。特点:用键值对的方式保存数据。---数据在Map集合中是成对存放的
---每个元素除了有值,还有一个唯一的键需要我们定义
最常用子类---HashMap
使用集合类对象
A. 放入元素 put(K,V)
B. 得到元素个数size()
C. 可以根据键位置获取某个元素get(K)
D. 修改元素--仍然调用put方法,只需要放入相同的键
E. 删除某个位置的元素remove(k)
在获取元素、删除元素的时候如果传入的键在map中不存在,不会报错!---危险
在修改元素的时候,如果传入的键在map中不存在,就直接变成增加新元素!---危险
解决方案:
利用containsKey方法,可以判断一个map集合中是否包含某个键
也有containersValue方法,判断一个map集合中是否包含某个值
判断的标准和Set中判断重复对象的方式一样,equals方法和hashCode方法
F. 对Map进行遍历
1、Map不能直接遍历---因为Map里的每一条记录都是一对儿,我们无法用一个变量来装
2、Map只能单独遍历所有的键或所有的值
3、统一使用for-each循环进行遍历
Containskey():把map中所有的键取出来放到一个Set集合中
Contansvalues():把map中所有的值取出来放到一个Collection集合中
7. collections
常见的max()、min()取一个集合中的最大值和最小值
跟排序有关的方法--只能操作List集合
自然排序--Collections.sort()
反转--Collections.reverse()
混排(随机排放)--Collections.shuffle()--洗牌效果
- JAVA基础:常用集合框架
- Java集合框架基础
- java基础:集合框架
- Java基础:集合框架
- Java基础-->集合框架
- Java基础--集合框架
- Java基础:集合框架
- java基础:集合框架
- 集合框架(java基础)
- java集合框架基础
- java基础-集合框架
- Java基础-集合框架
- Java基础:集合框架
- Java基础:集合框架
- Java基础--集合框架
- JAVA基础,集合框架
- JAVA集合框架基础
- Java的常用集合框架
- 5种IO模型
- java自旋 和 操作系统唤醒线程优先级
- POJO和JavaBean的区别
- Velocity语法介绍
- HDU1069-Monkey and Banana(DP算法)
- JAVA基础:常用集合框架
- servlet过滤器简单示例
- 欢迎使用CSDN-markdown编辑器
- Python菜鸟--文件I/O
- 变态跳台阶
- Bootstrap3.0 学习笔记之按钮的样式
- 基于S5PV210的HDMI移植
- VIM 常用命令
- “加密系统”的巨坑