可以将HashMap(散列表)简单理解为Python中的字典,一个键对应一个值,键是唯一的,如果键重复,后输入的键对应的值会覆盖前面的值。
import java.util.HashMap;
import java.util.Scanner;
public class Main {
private HashMap<Integer, String> coinnames = new HashMap<Integer, String>();
//必须Integer,int报错,容器中的数据必须为对象类型
public Main()
{
coinnames.put(1, "penny"); //存入一个键值对(python字典)
coinnames.put(10, "dime");
coinnames.put(25, "quarter");
coinnames.put(50, "half-dolar");
coinnames.put(50, "五毛"); //Hash中key是唯一的,key相同,后写入的值会将前面的值覆盖掉
System.out.println(coinnames);
//.keyset()可以理解为输出字典中的所有键 //.keyget().size()可以获得键值对的个数
for(Integer k : coinnames.keySet())
{ //.get()必须有一个参数的(键),返回键对应的值。如果没有对应的值,返回null
String s = coinnames.get(k);
System.out.println(s); //遍历 Hash表
}
}
public String getName(int amount)
{
return coinnames.get(amount);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int amount = in.nextInt();
Main coin = new Main();
String name = coin.getName(amount);
System.out.println(name);
}
}
结果:
50
{1=penny, 50=五毛, 25=quarter, 10=dime}
penny
五毛
quarter
dime
五毛
容器中只能存入对象类型,无法存入值类型(会报错),如果要用值类型(如int),可以使用对应的对象类型。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double