Java HashMap
HashMap 是一种哈希表,它存储键值对。键用于查找值,就像数组中的索引一样。HashMap 的上风在于它可以利用任何类型作为键,并且查找速率很快。
创建 HashMap
- // 导入 HashMap 类
- import java.util.HashMap;
- public class Main {
- public static void main(String[] args) {
- // 创建一个名为 capitalCities 的 HashMap 对象,将存储 String 键和 String 值
- HashMap<String, String> capitalCities = new HashMap<>();
- }
- }
复制代码 添加项目
- // 添加键和值(国家,城市)
- capitalCities.put("England", "London");
- capitalCities.put("Germany", "Berlin");
- capitalCities.put("Norway", "Oslo");
- capitalCities.put("USA", "Washington DC");
复制代码 访问项目
- // 获取 England 的首都
- String capitalOfEngland = capitalCities.get("England");
复制代码 删除项目
- // 删除 England 的首都
- capitalCities.remove("England");
复制代码 HashMap 大小
- // 获取 HashMap 中的项目数量
- int size = capitalCities.size();
复制代码 循环遍历 HashMap
- // 遍历 HashMap 并打印键和值
- for (String key : capitalCities.keySet()) {
- String value = capitalCities.get(key);
- System.out.println("Key: " + key + ", Value: " + value);
- }
复制代码 利用其他类型
HashMap 可以存储任何类型的键和值。例如,您可以存储 Integer 键和 String 值:- // 创建一个名为 people 的 HashMap 对象,将存储 Integer 键和 String 值
- HashMap<Integer, String> people = new HashMap<>();
- // 添加键和值(ID,姓名)
- people.put(1, "John Doe");
- people.put(2, "Jane Doe");
- // 获取 ID 为 1 的姓名
- String name = people.get(1);
复制代码 HashMap 是一种强大的数据结构,可用于存储各种类型的数据。它具有快速查找速率和灵活的键值对存储机制,使其成为很多应用程序的理想选择。
HashMap 的上风:
- 快速查找速率
- 可以存储任何类型的键和值
- 灵活的键值对存储机制
HashMap 的劣势:
建议:
- 如果需要快速查找数据,请利用 HashMap。
- 如果需要线程安全的数据结构,请利用 ConcurrentHashMap。
- 如果需要避免哈希碰撞,请利用 LinkedHashMap。
Java HashSet
HashSet 是一个无序集合,此中每个元素都是唯一的。它基于哈希表实现,因此查找速率很快。
创建 HashSet
- // 导入 HashSet 类
- import java.util.HashSet;
- public class Main {
- public static void main(String[] args) {
- // 创建一个名为 cars 的 HashSet 对象,将存储字符串
- HashSet<String> cars = new HashSet<>();
- }
- }
复制代码 添加项目
- // 添加项目
- cars.add("Volvo");
- cars.add("BMW");
- cars.add("Ford");
- cars.add("BMW"); // 不会重复添加
- cars.add("Mazda");
- // 查看 HashSet
- System.out.println(cars);
复制代码 检查项目是否存在
- // 检查项目是否存在
- boolean isPresent = cars.contains("Mazda");
- // 输出结果
- System.out.println("Mazda 在 HashSet 中吗? " + isPresent);
复制代码 删除项目
- // 删除项目
- cars.remove("Volvo");
- // 查看 HashSet
- System.out.println(cars);
复制代码 HashSet 大小
- // 获取 HashSet 大小
- int size = cars.size();
- // 输出结果
- System.out.println("HashSet 大小:" + size);
复制代码 循环遍历 HashSet
- // 循环遍历 HashSet
- for (String car : cars) {
- System.out.println(car);
- }
复制代码 利用其他类型
HashSet 可以存储任何类型的元素。例如,您可以存储 Integer 元素:- // 创建一个名为 numbers 的 HashSet 对象,将存储整数
- HashSet<Integer> numbers = new HashSet<>();
- // 添加元素
- numbers.add(1);
- numbers.add(2);
- numbers.add(3);
- // 循环遍历 HashSet
- for (int number : numbers) {
- System.out.println(number);
- }
复制代码 HashSet 是一种非常有用的数据结构,可用于存储各种类型的数据。它具有快速查找速率和无序的特点,使其成为很多应用程序的理想选择。
HashSet 的上风:
- 快速查找速率
- 无序,可以更快地添加和删除元素
- 答应存储任何类型的元素
HashSet 的劣势:
建议:
- 如果需要快速查找数据并且不需要保留元素的插入顺序,请利用 HashSet。
- 如果需要保留元素的插入顺序,请利用 LinkedHashSet。
- 如果需要避免哈希碰撞,请利用 TreeMap。
末了
为了方便其他设备和平台的小同伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果以为有帮助,欢迎 点赞、收藏、关注
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |