前言
基本概念:Java容器类类库的基本作用是“保存对象”并将其分为两个不同的概念Java集合可分为Collection和Map两种体系
Collection:一个独立元素的序列,List必须按照插入的顺序保存元素,Set不能有重复的元素,Queue按照排队规则来确定对象产生的顺序
Map:一组成对的“key-value”对象,允许使用键来查找值,因为它将某些对象与另外一些对象关联在一起,或者被称为“字典”。
Java集合框架
java集合框架
* |---collection接口
* |---Set接口(元素无序、不可重复)
* |---HashSet、LinkedHashSet、TreeSet
* |---List接口(元素有序、可重复)
* |---ArrayList、LinkedList、vector
* |---Map接口(key-value映射关系)
* |---HashMap、LinkedHashMap、TreeMap、HashTable
* |---Collections集合工具类
* |---迭代器
Collection接口
1.list接口:存储有序的,可以重复的元素
ArrayList、LinkedList、vector
ArrayList底层是数组实现的
LinkedList底层是链表实现的 主要用于频繁的插入、删除
vector线程安全的
2.set接口:存储无序的,不可重复的元素
HashSet、LinkedHashSet、TreeSet
无序性指的是元素在底层的存储是无序的
不可重复性是指向set元素添加相同的元素的时候,后面的这个不能添加进去
Map接口
Map接口:具有映射关系key-value对的集合
1. HashMap:Map的主要实现类
2. LinkedHashMap:使用链表维护添加进Map中的顺序,遍历Map时,是按添加的顺序遍历的
3. TreeMap:按照添加进Map中的元素的key的指定属性进行排序
4. Hashtable:古老的实现类,线程安全的,不建议使用
5. Properties:常用来处理属性文件。键值都为String类型的
集合工具类:Collections
Collections是一个操作Set、List和Map等集合的工具类
Collection中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制方法
集合中常用方法
/**
* ArrayList 是list接口下的主要实现类,底层是数组实现的,对于频繁的查找操作
* linkedList底层是链表实现的,对于频繁的插入、删除操作
* vector是线程安全的
*/
List<Integer> list = new ArrayList<>();
list.add(0,1);//指定位置添加
list.add(2);//添加元素
list.remove(0);//删除元素
list.get(0);//查询元素
list.set(0,3);//修改指定位置元素
list.isEmpty();//判断是否为空
list.subList(0,2);//获取子串
list.indexOf(2);//集合中首次出现的位置
list.contains(1);//包含某个元素
Object[] obj = list.toArray();//集合转换成数组
for(int i = 0;i<obj.length;i++){//数组遍历
System.out.println(obj[i]);
}
//iterator()实现集合的遍历
Iterator iterator = list.iterator();
while (iterator.hasNext()){//迭代器实现集合遍历
System.out.println(iterator.next());
/**
* 1.HashMap允许key和value都为空
* 2.HashMap的key重复会覆盖,value允许重复
* 3.HashMap是无序的,遍历的时候得到的元素的顺序是无序的
* 4.HashMp是非线程安全的
*
*/
Map<String,String> hashMap = new java.util.HashMap<String,String>();
hashMap.put("1","111");
hashMap.put("","");
hashMap.put("1","222");
hashMap.put("2","hajhjhjah");
hashMap.remove("2");