- 集合
Java集合可以把多个对象的引用放入容器中
-
- Java中的集合分为Set List和Map三种体系
Set 无序,不可重复的集合,set是以map为底层实现
List有序,可重复的集合,list接口是以数组为底层实现,是有序的
Map:具有映射关系的集合,key-value(键值对),map接口底层是hash函数,无序(不是随机)
-
- Collection是接口 Collections是Collection的工具类
- Collection接口中常用的函数
- Collection是接口 Collections是Collection的工具类
add(E e) //添加对象
addAll(Collection<? extends E> c)//添加集合
clear()//清除
contains(Object o)//判断对象是否存在
containsAll(Collection<?> c)//判断集合是否存在
equals(Object o)是否相等
hashCode()
isEmpty()//判断是否为空
iterator()//迭代器
remove(Object o)//移除某个实例
removeAll(Collection<?> c)//移除某个集合
retainAll(Collection<?> c)//仅保留指定集合中元素
size()//元素的个数
toArray()//转换为数组
toArray(T[] a)//转换 为指定类型的数组
-
-
- 遍历方式
-
方法一:foreach遍历
方式二:使用迭代器Iterator
1.得到迭代器 调用iterator()方法
2.迭代(遍历)
iterator.hasnext();//下个元素是否有
iterator.next(); //获取下个元素
-
-
- Iterator接口用于遍历Collection中的元素
-
Iterator对象也被称为迭代器
Iterator仅能用于遍历集合
hasNext()//判断下一位是否存在
next()//获取下一位如何遍历
- List是一个接口,其中可以可以存放的是有序的,可重复的元素集合中的每个元素都有其对应的索引
常用的实现类 ArrayList、LinkedList
ArrayList 是对象引用的一个变长的数组
LinkedList采用链表的方式存储
ArrayList与LinkedList的对比
ArrayList 遍历元素和随机访问元素的效率比较高,插入、删除等操作频繁时性能低下
LinkedList 插入、删除元素时效率较高,查找效率低
List中常用的方法
void add(int index, Object ele)
boolean addAll(int index, Collection eles)
Object get(int index)
int indexOf(Object obj)
int lastIndexOf(Object obj)
Object remove(int index)
Object set(int index, Object ele)
List subList(int fromIndex, int toIndex),toIndex取不到
-
- ArrayList常用的方法
void add(Object ele)
void add(int index, Object ele)
Object get(int index)
int indexOf(Object obj)
Object remove(int index)
Object set(int index, Object ele)
boolean isEmpty() //判断是否为空
boolean contains(Object obj) 判断集合中是否包含obj
-
- 遍历的三种方式
foreach
迭代器
利用size()与get()方法
-
- 修改的两种方式
set()直接设置
get()获取对象,对对象进行修改(引用数据类型传递的是地址)
-
- LinkedList常用的方法
void addFirst(Object object) 将给定元素插入当前集合头部
void addLast(Object object) 将给定元素插入当前集合尾部
Object getFirst() 获取当前集合的第一个元素
Object getLast() 获取当前集合的最后一个元素
Object removeFirst() 移除并返回当前集合的第一元素
Object removelast() 移除并返回当前集合的最后一个元素
-
- 泛型:用于指定集合中可以存储的元素类型(在集合中的使用)
- Set接口:Set存放的元素是无序的(不是随机的),不可重复的
Set没有get()方法
遍历只有两种方式foreach与ITerator方式
可以利用Set对List进行去重处理(遍历赋值)
- Map接口,map存放的都是键值对 key-value(根据键去找值)
Key 和 Value 之间存在单向一对一关系,即通过指定的 Key 总能找到唯一的,确定的 Value
key不允许重复,value可以重复
key和value都必须是引用类型的数据
主要实现类:HashMap
建议使用String作为键
-
- Map中常用的方法
Object put(key,value) 条件
Object remove(Object key) // 删除(根据键来删除键值对)返回值是要删除的键所对应的值,key不存在返回null
Object get(Object key) 获取指定键的值,若存在返回对应的值,否则返回null
boolean containsKey(key) 判断集合中是否存在关键字key
boolean containValue(value) 判断集合中是否 存在value
boolean isEmpty(0 判断集合中是否存在元素
int siez() 获取元素(键值对)的个数
SetkeySet() 获取所有键Key的集合
Collection values() 获取所有值value的集合
void clear() 清除元素(所有)
-
- 遍历方式
- 遍历键
- 遍历方式
foreach
Iterator
-
-
- 遍历值
-
foreach
Iterator
遍历键利用get获取值