集合 存储多个对象,是一种工具类,是对象的容器,可以用于存储数量不等的多个对象的对象,代替数组
所有的集合接口和相关实现类都在java.util包中
Collection:元素是Object,有两个子接口List和Set
常用方法
add(Object) 把元素添加到集合中
addAll(Collection c) 把c集合中的所有元素添加到集合中
clear():清空集合
Contains(Object o) 判断元素在集合中是否存在
remove(Object o) 从集合中删除元素
size() 返回集合的长度
toArray() 将集合转化为数组
List 元素按顺序存储(下标),元素可以重复
常用方法:
add(int pos,Object o) 将元素插入到指定位置
remove(int pos) 删除指定位置的元素
get(int pos) 获得指定位置的元素
indexOf(Object o) 获得第一个o元素的下标
lastIndexOf(Object o) 获得最后一o元素的下标
set(int pos,Object o) 将元素o设置到pos位置,覆盖原有的元素
遍历
下标遍历
for(int i=0;i<list.size();i++){
Object o = list.get(i);
System.out.println(o);
}
迭代器遍历
Iterator it=list.iterator();//迭代器
while(it.hasNext()){ //hasNext()判断迭代器中是否还有元素没有被迭代,返回的是boolean
Object next = it.next();//调用next()方法,迭代器指针下移,跳过的元素作为返回值返回
System.out.println(next);
}
for-each
for(Object o:list){
System.out.println(o);
}
实现类
ArrayList 数组实现结构 查询快 增删慢 线程不安全 并发效率高
Vector 数组实现结构 查询快 增删慢 线程安全 并发效率低
LinkedList 链表实现结构 查询满 增删快
Set: 元素无顺序,没有下标,元素内容不可重复
常用方法:等同于Collection接口
遍历
迭代器遍历 Collection 可以通过迭代器,删除集合中的元素
for-each
forEach() 需要实现java.util.function.Consumer接口
实现类
HashSet:链表数组 保证内容重复对象只有一个
覆盖hashCode方法,保证相同对象返回相同的int
覆盖equals方法,保证相同对象返回true
linkedHashSet HashSet的子类,维护元素添加到Set中的顺序
TreeSet SertedSet(Set的子接口)的实现类 自动实现对元素的排序 依照排序规则判断重复对象
Map 用于存储任意键值对(key-value) 实现类 HashMap
键:无序、无下标、不允许重复
值:无序、无下标、允许重复
常用方法:
get(Object key) 通过键查找值
put(Object key,Object value) 添加元素,如果key存在,则覆盖
remove(object key) 删除key对应的键值对
size 长度
containsKey(Object key) 判断key是否存在
containsValue(Object value) 判断value是否存在
遍历
keySet(),返回的是Set 遍历map中所有的key
static <K,V> void print1(Map<K,V> map){
Set keys=map.keySet();
for (K key : keys) {
V value = map.get(key);
System.out.println(key+":"+value);
}
}
values(),返回的是Collection 遍历map中所有的value
static <K,V> void print2(Map<K, V> map){
Collection values = map.values();
for (V value : values) {
System.out.println(value);
}
}
entrySet(),返回的是set set中的元素为Map.Entry对象,代表了一个键值对,遍历Map中的所有键值对
static <K,V> void print3(Map<K, V> map){
Set<Map.Entry<K, V>> entrys = map.entrySet();
for (Map.Entry<K, V> entry : entrys) {
K key = entry.getKey();
V value = entry.getValue();
System.out.println(key+":"+value);
}
}
实现类
HashMap
泛 型:约束集合中元素的类型,泛型没有多态,赋值语句前后泛型必须一致
Java集合
最新推荐文章于 2024-08-08 18:57:47 发布