Java-Map集合的应用-一对多的映射…
2013-09-18 14:22
357 查看
一对多:
一个教室对应多个学生.
学校里边不同的班级有不同的学生,但是可能ID相同.
//优化过后的代码,更具有复用和扩展性.
//定义一个可以存放三个数据的集合——班级名称,学生ID,学生名称
import java.util.*;
class MyMap
{
private Map map;
MyMap()
{
map = new HashMap();
}
public void createClass(String className,
String id, String name)
{
Map subMap =
(Map)map.get(className);
if (subMap == null)
{ subMap = new
HashMap();
map.put(className,
subMap);
//已经存在班级,只需要向学生这个Map集合里边存数据,而班级的Map不需要再存了
}
subMap.put(id, name);
}
public String getName(String className, String
id)
{
Map subMap =
(Map)map.get(className);
return
(String)subMap.get(id);
}
public void getStudent(String className)
{
System.out.println(className);
Map subMap =
(Map)map.get(className);
Set mySet =
subMap.keySet();
for (Iterator it =
mySet.iterator(); it.hasNext(); )
{
String id =
(String)it.next();
String name =
(String)subMap.get(id);
System.out.println(id
+ "..." + name);
}
}
public void getAll()
{
Set set1 = map.keySet();
for (Iterator it =
set1.iterator(); it.hasNext(); )
{
String
className = (String)it.next();
System.out.println(className);
Map subMap
= (Map)map.get(className);
Set set2 =
subMap.keySet();
for (Iterator
it1 = set2.iterator(); it1.hasNext(); )
{
String
id = (String)it1.next();
String
name = (String)subMap.get(id);
System.out.println(it
+ "..." + name);
}
}
}
}
class MyMapDemo
{
public static void main(String[] args)
{
MyMap mm = new MyMap();
mm.createClass("班级一", "01",
"小张");
mm.createClass("班级一", "02",
"小王");
mm.createClass("班级一", "03",
"小李");
mm.createClass("班级二", "01",
"小A");
mm.createClass("班级二", "02",
"小B");
mm.createClass("班级二", "03",
"小C");
//System.out.println(mm.getName("班级一",
"02"));
//mm.getStudent("班级一");
//mm.getStudent("班级二");
mm.getAll();
}
}
//前期设计代码,不具备扩展性和复用性.
import java.util.*;
class MapDemo
{
public static void main(String[] args)
{
//初期设计————(代码缺少复用性,冗余)
//定义一个学校,里边可以有多个班级
HashMap <String,
HashMap> school = new HashMap<String,
HashMap>();
//班级一
HashMap<String,
String> class1 = new HashMap<String
,String>();
class1.put("01", "小张");
class1.put("02", "小王");
class1.put("03",
"小李");
//班级二
HashMap<String,
String> class2 = new HashMap<String
,String>();
class2.put("01", "小周");
class2.put("02", "小孙");
class2.put("03", "小赵");
school.put("班级一", class1);
school.put("班级二",
class2);
show(school);
}
public static void show(Map map)
{
Set<String>
s = map.keySet();
for
(Iterator<String> it = s.iterator();
it.hasNext(); )
{
String
className = it.next();
System.out.println(className);
Map hs =
(Map)map.get(className);
Set
<String> s1 = hs.keySet();
for (Iterator
<String> it1 = s1.iterator();
it1.hasNext(); )
{
String
id = it1.next();
String
name = (String)hs.get(id);
System.out.println(id+".."+name);
}
}
}
}
一个教室对应多个学生.
学校里边不同的班级有不同的学生,但是可能ID相同.
//优化过后的代码,更具有复用和扩展性.
//定义一个可以存放三个数据的集合——班级名称,学生ID,学生名称
import java.util.*;
class MyMap
{
private Map map;
MyMap()
{
map = new HashMap();
}
public void createClass(String className,
String id, String name)
{
Map subMap =
(Map)map.get(className);
if (subMap == null)
{ subMap = new
HashMap();
map.put(className,
subMap);
//已经存在班级,只需要向学生这个Map集合里边存数据,而班级的Map不需要再存了
}
subMap.put(id, name);
}
public String getName(String className, String
id)
{
Map subMap =
(Map)map.get(className);
return
(String)subMap.get(id);
}
public void getStudent(String className)
{
System.out.println(className);
Map subMap =
(Map)map.get(className);
Set mySet =
subMap.keySet();
for (Iterator it =
mySet.iterator(); it.hasNext(); )
{
String id =
(String)it.next();
String name =
(String)subMap.get(id);
System.out.println(id
+ "..." + name);
}
}
public void getAll()
{
Set set1 = map.keySet();
for (Iterator it =
set1.iterator(); it.hasNext(); )
{
String
className = (String)it.next();
System.out.println(className);
Map subMap
= (Map)map.get(className);
Set set2 =
subMap.keySet();
for (Iterator
it1 = set2.iterator(); it1.hasNext(); )
{
String
id = (String)it1.next();
String
name = (String)subMap.get(id);
System.out.println(it
+ "..." + name);
}
}
}
}
class MyMapDemo
{
public static void main(String[] args)
{
MyMap mm = new MyMap();
mm.createClass("班级一", "01",
"小张");
mm.createClass("班级一", "02",
"小王");
mm.createClass("班级一", "03",
"小李");
mm.createClass("班级二", "01",
"小A");
mm.createClass("班级二", "02",
"小B");
mm.createClass("班级二", "03",
"小C");
//System.out.println(mm.getName("班级一",
"02"));
//mm.getStudent("班级一");
//mm.getStudent("班级二");
mm.getAll();
}
}
//前期设计代码,不具备扩展性和复用性.
import java.util.*;
class MapDemo
{
public static void main(String[] args)
{
//初期设计————(代码缺少复用性,冗余)
//定义一个学校,里边可以有多个班级
HashMap <String,
HashMap> school = new HashMap<String,
HashMap>();
//班级一
HashMap<String,
String> class1 = new HashMap<String
,String>();
class1.put("01", "小张");
class1.put("02", "小王");
class1.put("03",
"小李");
//班级二
HashMap<String,
String> class2 = new HashMap<String
,String>();
class2.put("01", "小周");
class2.put("02", "小孙");
class2.put("03", "小赵");
school.put("班级一", class1);
school.put("班级二",
class2);
show(school);
}
public static void show(Map map)
{
Set<String>
s = map.keySet();
for
(Iterator<String> it = s.iterator();
it.hasNext(); )
{
String
className = it.next();
System.out.println(className);
Map hs =
(Map)map.get(className);
Set
<String> s1 = hs.keySet();
for (Iterator
<String> it1 = s1.iterator();
it1.hasNext(); )
{
String
id = it1.next();
String
name = (String)hs.get(id);
System.out.println(id+".."+name);
}
}
}
}
相关文章推荐
- Java程序员从笨鸟到菜鸟之(五十七)细谈Hibernate(八)Hibernate集合Map关系映射
- java中Map集合的常用遍历方法及HashMap的应用实例
- Java集合篇四:Map的基本应用
- Scala中映射的语法(对应Java中的Map集合的定义)
- Java程序员从笨鸟到菜鸟之(五十七)细谈Hibernate(八)Hibernate集合Map关系映射
- Java集合(八) 迭代器Iterator、泛型、Map映射
- java中Map集合的常用遍历方法及HashMap的应用实例
- java中集合类list set map三者的区别和应用场合
- 数组与集合的应用之常用集合的使用(Map映射集合实现省市级联选择框)
- Java集合三种类型:Set<集>、List<列表>、Map<映射>
- java集合 映射使用(Set,List,Map)
- Java 泛型学习(二)泛型集合应用:实现对Map的迭代
- java集合(4)——map的一些应用
- Java_Map集合的基本应用
- java中Map集合的常用遍历方法及HashMap的应用实例
- 在java商城开发中map集合的应用
- Java集合(四):Map映射
- java中map集合的原理与应用
- JAVA集合 Set(集)、List(列表)、Map(映射)、Collection(接口)
- java中Map集合的常用遍历方法及HashMap的应用实例