数据结构-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));
		}
	}
}
posted @ 2013-05-20 22:36  oyiya  阅读(173)  评论(0)    收藏  举报