LinkedHashSet
特点:去重、无下标 、有链表的结构、有序 (怎么存的顺序 打印出来就什么顺序)
// 声明一个set集合
LinkedHashSet<String> set = new LinkedHashSet<>();
// 存放 f、a、b、c、d
set.add("f");
set.add("a");
set.add("b");
set.add("c");
set.add("d");
// 获取迭代器
Iterator<String> iterator = set.iterator();
// 迭代器遍历
while (iterator.hasNext()) {
String string = (String) iterator.next();
System.out.println(string);
}
// 控制台打印
f
a
b
c
d
TreeSet
特点:无序、无下标、不重复 (可以用来排序)
TreeSet排序步骤
1.实现comparable接口
2.实现接口中的方法
3.编写排序规则
map
是双列集合的父接口
1.以键值对形式存储数据 key-value
2.键值唯一(键值不能重复)
HashMap和HashSet有关系嘛?
有关系 HashSet依赖HashMap
实际上向HashSet中添加元素相当于向map中的key列添加元素
HashMap : 有去重的功能(该功能属于key列)
TreeMap : 有排序的功能(该功能属于key列)
map 中的方法
HashMap<String, Integer> map = new HashMap<>();
map.put("wanglong", 12);
map.put("dongdong", 17);
map.put("jiejie", 22);
map.put("liuliu", 19);
// 判断map中是否包含 某个key
boolean b1 = map.containsKey("wanglong");
System.out.println(b1);
// 是否包含 某个value
boolean b2 = map.containsValue(12);
System.out.println(b2);
// 获取所有key的Set集合(核心方法)
Set<String> keySet = map.keySet();
System.out.println(keySet);
// 获取所有value集合
Collection<Integer> values = map.values();
System.out.println(values);
// 通过key删除整个键值对
Integer delValue = map.remove("wang");
System.out.println(delValue);
System.out.println(map);
// 清空map
map.clear();
System.out.println(map);
// 控制台打印
true
true
[dongdong, wanglong, jiejie, liuliu]
[17, 12, 22, 19]
null
{dongdong=17, wanglong=12, jiejie=22, liuliu=19}
{}