目录
Set 集合存储元素特点
元素存取无序(无下标),不可重复即唯一
示例一:当存入重复元素时,该重复元素只会存入一个
import java.util.HashSet; import java.util.Set; public class SET { public static void main(String[] args) { Set<String> str = new HashSet<>(); str.add("abc"); str.add("abc"); for (String s: str) { System.out.println(s); } } }
示例二:存取无序,存入的顺序与遍历后的顺序不同
import java.util.HashSet; import java.util.Set; public class SET { public static void main(String[] args) { Set<String> str = new HashSet<>(); str.add("abc"); str.add("123"); str.add("456"); str.add("789"); str.add("java"); str.add("C++"); for (String s: str) { System.out.println(s); } } }
Map常用方法以及如何遍历
(1)Map 和 Collection 没有继承关系
(2)Map 集合以KEY 和 VALUE 的方式(键值对)存储数据
(3)KEY 和 VALUE 都是引用数据类型,且都是存储的对象的内存地址
Map 接口中常用方法:
(1)添加:put(Object key,Object value):向Map集合中添加键值对
(2)判断Key:containsKey(Object key):判断Map集合中是否包含某个Key
(3)判断Value:containsKey(Object key):判断Map集合中是否包含某个Value
(注意:containsKey方法底层调用的都是equals方法)
(4)删除:remove(Object key):通过Key删除键值对
(5)查询:get(Object key):通过Key获取Value
(6)长度:size():获取Map集合中键值对的个数
(7)转换:Set<Map.Entry<K, V>> entrySet():将Map集合转换成Set集合(8)清空:clear():清空Map集合中的键值对
示例一:基本方法的作用示例
import java.util.*; public class SET { public static void main(String[] args) { Map<Integer,String> map = new HashMap(); //添加数据 map.put(1,"C"); map.put(2,"C++"); map.put(3,"C#"); map.put(4,"java"); //通过Key调取Value map.get(3); System.out.println("调用get方法的结果为:"+map.get(3)); System.out.println("------------------------------"); //通过remove删除键值对 System.out.println("键值对的数量:"+map.size()); map.remove(2); System.out.println("删除后键值对的数量:"+map.size()); //判断是否包含某个Value System.out.println("------------------------------"); System.out.println("是否包含java这个value:"+map.containsValue("java")); System.out.println("是否包含Python这个value:"+map.containsValue("Python")); //判断是否包含某个Key System.out.println("------------------------------"); System.out.println("是否包含3这个key:"+map.containsKey(3)); System.out.println("当删除2后,是否包含2这个key:"+map.containsKey(2)); System.out.println("是否包含10这个key:"+map.containsKey(10)); //清空集合前后,判断集合是否为空 System.out.println("------------------------------"); System.out.println("清空集合前,集合是否为空:"+map.isEmpty()); map.clear(); System.out.println("清空集合后,集合是否为空:"+map.isEmpty()); } }
结果:
调用get方法的结果为:C# ------------------------------ 键值对的数量:4 删除后键值对的数量:3 ------------------------------ 是否包含java这个value:true 是否包含Python这个value:false ------------------------------ 是否包含3这个key:true 当删除2后,是否包含2这个key:false 是否包含10这个key:false ------------------------------ 清空集合前,集合是否为空:false 清空集合后,集合是否为空:true
遍历Map集合
方法一:获取所有的key,通过遍历key,来遍历value
import java.util.*; public class 遍历Map { public static void main(String[] args) { Map<Integer,String> map = new HashMap(); map.put(1,"C"); map.put(2,"C++"); map.put(3,"C#"); map.put(4,"java"); //获取所有的key值:Set集合 Set<Integer> i = map.keySet(); Iterator<Integer> key = i.iterator(); //遍历 while (key.hasNext()){