JAVA学习笔记(复习)-----7、 JAVA SE 核心 I(2)
来源:互联网 发布:ip和域名登录 编辑:程序博客网 时间:2024/05/22 06:04
本章内容:集合Collection和Map
一、Collection
collection:是一个接口,定义了集合相关的抽象方法,
collection:下面有两大接口:List和Set
集合中可以保存任意类型的实例(集合中每个元素是任意类型的实例),但一般而言,一个集合中的元素类型应该是一致的,否则容易造成混乱。
List:元素[有序]且[可以重复添加]
Set:元素[无序]且[不可以重复添加]
1、线性表ArrayList:
ArrayList:是List的一个实现类
ArrayList:使用Object[]实现保存元素
ArrayList:Object[]+线性表操作(增删查改)
向集合末尾追加元素 add()
向集合制定位置添加元素也是add(index,object)
从集合中获取元素用get()
ArrayList重写了toString()方法,输出格式:[元素0.toString(),元素1.toString(),元素2.toString()]
查看一个是否在集合中,arrayList.contains(object);此方法会将object与集合arraylist中的每个元素进行equals()比较,若有一项为true则返回true,否则返回false。
删除集合的元素(remove(object))
remove(Object o)删除制定 o,此方法是将 o 与集合所有元素进行equals()相比,返回true则删除,否则返回false
remove(int index)删除指定下标的元素(返回被删除的对象)
size() 返回集合中的元素数量
set() 修改元素
修改元素不是将元素内容改变,而是当前的位置元素改变,所以集合的修改就是替换
set(index,Object o)
此方法返回被替换的元素
addAll()添加(合集)
将另一个集合的所有元素也添加到集合中
removeAll()(差集)
从一个集合中删除与另一个集合包含的元素
retainsAll() (交集)
集合中保存另一个集合也包含的元素
空集(不是null)
对象.isEmpty()
清空集合
对象.clear()
Vector:使用方法与ArrayList一样,Vector也实现了List接口,ArrayList在Java1.2后出现,ArrayList线程非安全,Vector线程安全
2、LinkedList
LinkedList:链表(采用双向循环链表实现)
API用法基本与ArrayList一致
另外:
addFirst() =>add(0,object) 向第一个位置末添加元素
addLast() =>add(size,object)向末尾添加元素
removeFirst()删除第一个元素
removeLast()删除最后一个元素
说明:
增删时效率比ArrayList高,查询时比ArrayList低
补充:
java1.5之后增加了泛型,在集合中使用泛型:可以约束集合中的元素类型。
好处:1、向集合中存放元素时,类型统一;
2、从集合中取元素时不需要再造型
二、散列表Map
容量:散列表中散列数组的大小
散列运算:key的hashcode值进行运算
散列桶:散列值相同的元素的线性集合
加载因子:散列数组的加载率,一般要求小于75%,元素数目 / 散列数组的大小=加载因子
散列查找:根据key值进行hashcode值进行计算,计算散列表下标从而找到对应元素
1、hashMap
- JAVA学习笔记(复习)-----7、 JAVA SE 核心 I(2)
- JAVA学习笔记(复习)-----7、 JAVA SE 核心 I(1)
- java SE复习笔记7
- java SE复习笔记2
- 超详细的java基础知识学习(java SE、javaEE)笔记 核心重点!
- java SE复习笔记1
- java SE复习笔记3
- java SE复习笔记4
- java SE复习笔记5
- java SE复习笔记6
- java SE复习笔记8
- java SE复习笔记9
- java SE复习笔记10
- java SE复习笔记11
- java SE复习笔记12
- java SE复习笔记13
- java SE复习笔记14
- java SE复习笔记15
- 你熟悉 SVG 样式的书写吗?
- JavaScript slice() 方法
- kerberos
- nginx配置ssl双向验证 nginx https ssl证书配
- 移动端meta
- JAVA学习笔记(复习)-----7、 JAVA SE 核心 I(2)
- python find()用法
- 2014年终杂想
- linux下编译执行C程序
- 分布式系统阅读笔记(九)-----Web Service服务
- c#入门系列——番外篇:vs的安装与使用
- nginx访问页面设置密码
- 思科持续发展的绝招
- C++内存管理