一、簡介
- Map就是用來存儲“鍵(key)-值(value)”對的.
- 通過鍵尋找value,所以鍵不能重複.
- 數組的本質也是一種鍵值對,區別就是索引一般是數字,而Map的Key可以是任意對象(字符串,數字),相當於把數組的索引範圍擴的更大,使用更方便.
- 實際開發中較爲常用.
二、Map的常用方法實例
- (1)存儲數據(V put(K key, V value))
Map<Integer,String> map = new HashMap<>(16);
map.put(1,"a");
map.put(2,"b");
map.put(3,"c");
map.put(4,"d");
map.put(5,"e");
map.put(6,"f");
map.put(7,"g");
map.put(8,"h");
map.put(9,"i");
- (2)取出數據(V get(Object key))
String s = map.get(1);
System.out.println(s);
- (3)添加對象操作
import java.util.HashMap;
import java.util.Map;
/**
* @author liuyangos8888
*/
public class MapHasObject {
public static void main(String[] args) {
Employee e1 = new Employee(1001, "張三", 50000);
Employee e2 = new Employee(1002, "李四", 5000);
Employee e3 = new Employee(1003, "龍五", 6000);
Employee e4 = new Employee(1001, "五六", 7000);
Map<Integer, Employee> map = new HashMap<>();
map.put(1001, e1);
map.put(1002, e2);
map.put(1003, e3);
map.put(1001, e4);
Employee emp = map.get(1001);
System.out.println(emp.getEmployeeName());
System.out.println(map);
}
}
/**
* 新建職員對象
*/
class Employee {
/**
* 工號
*/
private int id;
/**
* 姓名
*/
private String employeeName;
/**
* 薪資
*/
private double salary;
public Employee(int id, String employeeName, double salary) {
this.id = id;
this.employeeName = employeeName;
this.salary = salary;
}
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", employeeName='" + employeeName + '\'' +
", salary=" + salary +
'}';
}
}
結果: