- Java集合类存放于java.util包中,是用来存放对象的容器。有且仅能存放对象,当存入基本数据类型会自动转换为对应的引用类型。
- Java集合可分为Set、List和Map三种类型
Set:无序、不可重复的集合
List:有序,可重复的集合
Map:具有映射关系的集合
1.HashSet
- HashSet是Set接口的典型实现,用的情况最多,大多数说的set集合就是HashSet。
-
HashSet 按 Hash 算法来存储集合中的元素,因此具有很好的存取和查找性能。
HashSet 具有以下特点:
不能保证元素的排列顺序
不可重复
HashSet 不是线程安全的
集合元素可以使 null
当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,然后根据 hashCode 值决定该对象在 HashSet 中的存储位置。
-
如果想使集合(collection)只存同一类型,需使用泛型。
2.TreeSet
- TreeSet是StortedSet接口的实现类,使用TreeSet可以确保集合处于排序状态
- TreeSet支持两种排序算法:自然排序和定制排序,默认为自然排序
3.ArrayList
- List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引
- List 允许使用重复元素,可以通过索引来访问指定位置的集合元素。
- List 默认按元素的添加顺序设置元素的索引。
- List 集合里添加了一些根据索引来操作集合元素的方法
一般用的list就是ArrayList
4.Map
- Map 中的 key 和 value 都可以是任何引用类型的数据
- Map 中的 Key 不允许重复,即同一个 Map 对象的任何两个 Key 通过 equals 方法比较中返回 false
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("b", 1);//添加数据
map.values();//获取集合的所有value值
Set<String> keys = map.keySet();//获取map集合的key的集合
System.out.println(map.get("b"));//根据key取值
System.out.println(map.containsKey("a"));//判断当前的map集合是否包含指定的key
System.out.println(map.containsValue(1));//判断当前的map集合是否包含指定的value