数据结构-Map
Map结构
/*
Map: 一对一,多对一
一对多? 一对 List(多)
一刀切: 没有则创造
*/
import java.util.*;
class Person
{
private int age;
private String name;
public Person(int age, String name)
{
this.name = name;
this.age = age;
}
public String toString()
{
return name + ": " + age;
}
public String getName() { return name; }
public int getAge() { return age; }
}
class TelBook
{
private Map map;
private Map map2;
public TelBook()
{
map = new HashMap(); // key-->value, String--->Person
map2 = new Hashtable(); // key-->value, Integer--->List(Person, Person, ...)
}
public void add(Person x)
{
map.put(x.getName(), x);
List t = (List)map2.get(x.getAge()); //返回此映射中指定键的值
if(t==null){
t = new ArrayList();
map2.put(x.getAge(), t);
}
t.add(x);
}
public Person findByName(String name)
{
return (Person)map.get(name);
}
public List findByAge(int age)
{
return (List)map2.get(age);
}
}
public class MyMap
{
public static void main(String[] args)
{
TelBook a = new TelBook();
a.add(new Person(20, "zhang"));
a.add(new Person(12, "li"));
a.add(new Person(12, "wang"));
a.add(new Person(44, "tang"));
a.add(new Person(12, "zhu"));
List t = a.findByAge(12);
for(int i=0; i<t.size(); i++){
System.out.println(t.get(i));
}
}
}
浙公网安备 33010602011771号