java hashmap的用法_Java HashMap使用方法教程及示例代码

1、Java HashMap

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

例如,

创建HashMap对象,该对象将存储String类型key和String类型的value:import java.util.HashMap; // import the HashMap class

HashMap langs = new HashMap();

2、HashMap中添加key和value

HashMap类具有许多有用的方法。例如,要向其中添加项目,请使用put()方法:

例如:

// Import the HashMap class

import java.util.HashMap;

public class Main {

public static void main(String[] args) {

// 创建 HashMap 对象

HashMap langs = new HashMap();

// Add keys and values (Country, City)

langs.put("c", "c c++ c#");

langs.put("java", "Java");

langs.put("python", "Python");

langs.put("cjavapy", "cjavapy.com");

System.out.println(langs);

}

}

3、通过key访问HashMap中的value

要访问HashMap中的值,需要使用get()方法通过key来获取:

例如:

langs.get("c");

4、通过key删除HashMap中key和value键值对

要删除key和value对,需要使用remove()方法通过key来删除:

例如:langs.remove("cjavapy");

要删除所有key和value对,请使用clear()方法:

例如:langs.clear();

5、HashMap size

要找出有多少个key和value键值对,请使用size方法:

例如:langs.size();

6、循环遍历hashmap中的key和value

通过for-each循环遍历HashMap的各项。

注意:

如果只需要遍历key,请使用keySet()方法,如果仅需要value,请使用values()方法:

例如:// Print keys

// 创建 HashMap 对象

HashMap langs = new HashMap();

// Add keys and values (Country, City)

langs.put("c", "c c++ c#");

langs.put("java", "Java");

langs.put("python", "Python");

langs.put("cjavapy", "cjavapy.com");

for (String i : langs.keySet()) {

System.out.println(i);

}

例如:// Print values

// 创建 HashMap 对象

HashMap langs = new HashMap();

// Add keys and values (Country, City)

langs.put("c", "c c++ c#");

langs.put("java", "Java");

langs.put("python", "Python");

langs.put("cjavapy", "cjavapy.com");

for (String i : langs.values()) {

System.out.println(i);

}

例如:// Print keys and values

// 创建 HashMap 对象

HashMap langs = new HashMap();

// Add keys and values (Country, City)

langs.put("c", "c c++ c#");

langs.put("java", "Java");

langs.put("python", "Python");

langs.put("cjavapy", "cjavapy.com");

for (String i : langs.keySet()) {

System.out.println("key: " + i + " value: " + capitalCities.get(i));

}

7、其它类型

HashMap中的key和value键值对实际上是对象。 在上面的示例中,我们使用了String类型的对象。 Java中的String是一个对象(不是原始类型)。 要使用其他类型,例如,int,必须指定等效的包装类:Integer。 对于其他基本类型,请使用:Boolean表示布尔值,Character表示char,Double表示double,等等。

基本类型对应的包装类表如下:

基本类型引用类型

booleanBoolean

byteByte

shortShort

intInteger

longLong

floatFloat

doubleDouble

charCharacter

例如:

创建一个名为people的HashMap对象,该对象将存储String类型的key和Integer类型的value:

// Import the HashMap class

import java.util.HashMap;

public class Main {

public static void main(String[] args) {

HashMap langs = new HashMap();

// Add keys and values (Name, Age)

langs.put("c", 32);

langs.put("java", 30);

langs.put("python", 33);

for (String i : langs.keySet()) {

System.out.println("key: " + i + " value: " + langs.get(i));

}

}

}

8、HashMap和HashSet的区别

1) HashSet实现了Set接口, 仅存储对象; HashMap实现了 Map接口, 存储的是键值对.

2) HashSet底层其实是用HashMap实现存储的, HashSet封装了一系列HashMap的方法. 依靠HashMap来存储元素值,(利用hashMap的key键进行存储), 而value值默认为Object对象. 所以HashSet也不允许出现重复值, 判断标准和HashMap判断标准相同, 两个元素的hashCode相等并且通过equals()方法返回true。

HashMapHashSet

HashMap实现了Map接口HashSet实现了Set接口

HashMap储存键值对HashSet仅仅存储对象

使用put()方法将元素放入map中使用add()方法将元素放入set中

HashMap中使用键对象来计算hashcode值HashSet使用成员对象来计算hashcode值,

对于两个对象来说hashcode可能相同,

所以equals()方法用来判断对象的相等性,

如果两个对象不同的话,那么返回false

HashMap比较快,因为是使用唯一的键来获取对象HashSet较HashMap来说比较慢

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值