关于java.util.Set接口(单个方式存储元素)
一、HashSet集合
- HashSet集合是非线程安全的。
- HashSet集合存储元素的特点:无序不可重复。
——无序:存进去的顺序和取出来的顺序不一定相同。
——不可重复:存进去一个1,不能再存进去一个1。
- 放到HashSet集合中的元素实际上是放到HashMap集合中的key部分,底层是哈希表。
二、TreeSet集合
- TreeSet集合存储元素的特点:无序不可重复的,储存的元素是可以自动按照大小顺序排序的。
——无序:存进去的顺序和取出来的顺序不一定相同。
——不可重复:存进去一个1,不能再存进去一个1。
——可排序:储存的元素可以自动按照大小顺序排序。
- 放到TreeSet集合中的元素实际上是放到TreeMap集合中的key部分,底层是二叉树。
关于java.util.Map接口(以key和value这种键值对的方式存储元素)
一、Map集合接口中常用的方法
- Map接口和Collection接口没有继承关系。
- Map集合是以key和value这种键值对的方式存储元素。
——key和value都是引用数据类型,都是存储对象的内存地址。
——key起到主导的地位,value是key的一个附属品。
- Map集合接口中的常用方法:
V
put(K key, V value):向Map集合中添加键值对
V
get(Object key):通过指定的key,获得其所对应的value
void
clear():清空Map集合
boolean
containsKey(Object key):判断Map集合中是否包含指定的key
boolean
containsValue(Object value):判断Map集合中是否包含指定的value
boolean
isEmpty():判断Map集合中的元素个数是否为0
Set<K>
keySet():获得Map集合中所有的key(所有的key是一个Set集合)
V
remove(Object key):删除指定key所对应的键值对
int
size():获取Map集合中键值对的个数
Collection<V>
values():获得Map集合中所有的value,返回一个Collection集合
Set<Map.Entry<K,V>>
entrySet():将Map集合转换成Set集合
—— Map集合通过entrySet()方法转换成的这个Set集合,集合中的元素类型是 Map.Entry<K,V>
—— Map.Entry<K,V>和String一样都是一种类型的名字(类名),只不过 Map.Entry<K,V>是Map中的静态内部类
public class MapTest01 {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "张三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "陈六");
System.out.println("集合中键值对的个数:"+map.size());
System.out.println(map.get(2));
map.remove(2);
System.out.println("集合中键值对的个数:"+map.size());
System.out.println(map<