HashMap
参考资料:菜鸟教程,大佬按照增删改查分类的资料
import java.util.HashMap;
public class learn_hashmap{
public static void main(String[] args) {
// 创建 HashMap 对象 Sites
HashMap<Integer, String> Sites = new HashMap<Integer, String>();
// 增:添加键值对
Sites.put(1, "Google");
Sites.put(2, "Runoob");
Sites.put(3, "Taobao");
// 删
Sites.remove(2); //通过key删一个
Sites.clear(); //删全部
// 改
Sites.replace("2", "weibo");
Sites.replace("2", "Runoob", "weibo");
// 查
// 查1:通过key获取value
out_value=Sites.get(3);
// 查2:通过遍历获取key
for (Integer i : Sites.keySet()) {
System.out.println("key: " + i + " value: " + Sites.get(i));
}
// 查3:通过遍历获取每个value
for(String value: Sites.values()) {
System.out.print(value + ", ");
}
// 查4: 遍历获得key,value
for (Map.Entry<Integer, String> entry : Sites.entrySet()) {
System.out.println("key: " + entry.getKey() + "value: " + Sites.getValue());
}
// 查5:判断是否有指定的key
boolean flag1 = map.containsKey("1001");
// 查6:判断是否有指定的value
boolean flag2 = map.containsValue("zhihu");
System.out.println(Sites);
}
}
HashSet
参考资料:大佬
HashSet是基于HashMap来实现的,实现了Set接口,同时还实现了序列化和可克隆化。而集合(Set)是不允许重复值的。
所以HashSet是一个没有重复元素的集合,但不保证集合的迭代顺序,所以随着时间元素的顺序可能会改变。由于HashSet是基于HashMap来实现的,所以允许空值,不是线程安全的。
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
//增,使用add(),但是HashSet不会存重复的元素,所以add相同的不会存进去。
set.add("张三");
set.add("李四");
set.add("张三");
//删
set.remove("张三");
// 查
//1. 查找某元素是否存在
boolean flag = set.contains("李四")
//2. 查找元素个数
nums = set.size()
//3. 判断set是否为空
boolean con = set.isEmpty();
//4. 遍历for循环
for (String s : set){}
//5. 遍历 迭代器
Iterator itr = hs.iterator();
while (itr.hasNext()){}