HashMap常用方法

导读:本篇文章讲解 HashMap常用方法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即不会记录插入的顺序。HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

HashMap常用方法

HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value

二、添加元素

方法:HashMap添加键值对(key-value)可以使用 put() 方法

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("1","1");
    map.put("2","2");
    map.put("3","3");
    System.out.println(map);
}

运行结果:

{1=1, 2=2, 3=3}

三、访问元素

方法:使用 get(key) 方法来获取 key 对应的 value

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("1","1");
    map.put("2","2");
    map.put("3","3");
    String s1 = map.get("1");
    String s2 = map.get("2");
    String s3 = map.get("3");
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s3);
}

运行结果:

1
2
3

四、删除元素

方法:使用 remove(key) 方法来删除 key 对应的键值对(key-value)

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("1","1");
    map.put("2","2");
    map.put("3","3");
    map.remove("1");
    System.out.println(map);
}

运行结果:

{2=2, 3=3}

五、计算map的大小

方法:size()

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("1","1");
    map.put("2","2");
    map.put("3","3");
    int size = map.size();
    System.out.println(size);
}

运行结果:

3

六、迭代 HashMap

可以使用 for-each 来迭代 HashMap 中的元素。

如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法。

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");
    for (String s : map.keySet()) {
        System.out.println("for循环----"+s);
    }
    map.forEach((k,v)->{
        System.out.println("foreach-----"+k+"----"+v);
    });
}

运行结果:

for循环—-A
for循环—-B
for循环—-C
foreach—–A—-1
foreach—–B—-2
foreach—–C—-3

七、删除 hashMap 中的所有键/值对

方法:clear()

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");
    map.clear();
    System.out.println(map);
}

运行结果:

{ }

八:复制一份 hashMap

方法:clone()

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");
    Object clone = map.clone();
    System.out.println("原来的"+map);
    System.out.println("复制一份"+clone);
}

运行结果:

原来的{A=1, B=2, C=3}
复制一份{A=1, B=2, C=3}

九、判断 hashMap 是否为空

方法:isEmpty()

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    HashMap<String, String> map1 = new HashMap<>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");
    boolean empty1 = map.isEmpty();
    boolean empty2 = map1.isEmpty();

    System.out.println(empty1);
    System.out.println(empty2);
}

运行结果:

false
true

十、替换 hashMap 中是指定的 key 对应的 value

方法:replace()

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    HashMap<String, String> map1 = new HashMap<>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");
    System.out.println("替换前----"+map);
     map.replace("A", "100");
    System.out.println("替换后----"+map);
}

运行结果:

替换前—-{A=1, B=2, C=3}
替换后—-{A=100, B=2, C=3}
 

十一、添加键值对到 hashMap 中

方法:merge()

代码:

public static void main(String[] args) {
    HashMap<String, String> map = new HashMap<>();
    HashMap<String, String> map1 = new HashMap<>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");
    System.out.println("添加前----"+map);
    map.merge("D", "4", (oldValue, newValue) -> oldValue + newValue);
    System.out.println("添加后----"+map);
}

运行结果:

添加前—-{A=1, B=2, C=3}
添加后—-{A=1, B=2, C=3, D=4}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119906.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!