`
齐晓威_518
  • 浏览: 622614 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

HashMap<String,HashMap<String,String>> 的多级映射 .

 
阅读更多

package namespace;
import java.util.*;
class Student implements Comparable<Student>
{
 private String id;
 public String name;
 public Student(String id,String name)
 {
  this.id=id;
  this.name=name;
 }
 public String getName()
 {
  return this.name;
 }
 public String getId()
 {
  return this.id;
 }
 public int hashCode()
 {
  return this.name.hashCode()+this.id.hashCode();
 }
 public boolean equals(Object obj)
 {
  Student student=(Student)obj;
  return this.name.equals(student.name) && this.id.equals(student.id);
 }
 public int compareTo(Student stu)
 {
  int num=this.id.compareTo(stu.id);
  if(num==0)
   return this.name.compareTo(stu.name);
  return num;
 }
 public String toString()
 {
  return id+"..."+name;
 }
 
}
public class ManyMap {
 public static void main(String args[])
 {
  /*   这是一个一对多的映射,就是一个学样对应多个班级,一个班级又对应多个学生
  HashMap<String,HashMap<String,String>>nyist=new HashMap<String,HashMap<String,String>>();//定义nyist学校名
  HashMap<String,String>jsjx=new HashMap<String,String>();//定义班级名
  HashMap<String,String>ysx=new HashMap<String,String>();//定义第二个班级名
  nyist.put("jsjx",jsjx);
  nyist.put("ysx",ysx);//将班级加到学校里
  //下面向班里面加人
  jsjx.put("001","boy");
  jsjx.put("002","girl");
  jsjx.put("003","xiaozhang");
  ysx.put("001","xiaoli");
  ysx.put("002","hujintao");
  ysx.put("003","wenjiabao");
  //下面找出jsjs里面的所有的人
  HashMap<String,String>classes=nyist.get("jsjx");
  Set<Map.Entry<String,String>>entryset=classes.entrySet();
  
  for(Iterator<Map.Entry<String,String>> it=entryset.iterator();it.hasNext();)
  {
   Map.Entry<String,String> me=it.next();
   System.out.println(me.getKey()+"..."+me.getValue());
  }
  
  //下面找出nyist 里面所有的人
  Set<Map.Entry<String,HashMap<String,String>>>outentry=nyist.entrySet();
  for(Iterator<Map.Entry<String,HashMap<String,String>>>it=outentry.iterator();it.hasNext();)
  {
   Map.Entry<String,HashMap<String,String>> out=it.next();//得到it.next()取得的班级
   System.out.println("班级:"+out.getKey());
   HashMap<String,String>inner=out.getValue();//得到班级的hashmap
   Set<Map.Entry<String,String>>clainner=inner.entrySet();
   //System.out.println(clainner);
   sop(clainner);
  }
 }
 public static void sop(Set<?>list)
 {
  for(Iterator<?>it=list.iterator();it.hasNext();)
  {
   System.out.println(it.next());
  }
 }*/
  //下面不用HashMap<String,String> 来表示学生了,因为在实际开发中,学生要被封装成类,因为定义在Student 类中
  HashMap<String,List<Student>>nyist = new HashMap<String,List<Student>>();//定义学校,里面有班级和学生集合的映射,一个班级对应一个学生集合
  List<Student>jsjx=new ArrayList<Student>();
  List<Student>ysx=new ArrayList<Student>(); //定义两个学生类,也就是两个班级里的人数
  nyist.put("jsjx",jsjx);
  nyist.put("ysx",ysx);//将两个班级放到学校里面去
  jsjx.add(new Student("001","zhangsan"));
  jsjx.add(new Student("002","zhaolin"));
  ysx.add(new Student("0032","zhau"));
  ysx.add(new Student("1230","ahde"));
  Set<Map.Entry<String,List<Student>>> entrykey = nyist.entrySet();
  for(Iterator<Map.Entry<String,List<Student>>>it=entrykey.iterator();it.hasNext();)
  {
   Map.Entry<String,List<Student>> item=it.next();
   System.out.println("班级:"+item.getKey());
   List<Student>stu=item.getValue();
   /*for(Iterator<Student>iterator=stu.iterator();it.hasNext();)
   {
    System.out.println(it.next());
   }*/
   show(stu);
  }
 }
 public static void show(List<?> list)
 {
  for(Iterator<?>it=list.iterator();it.hasNext();)
  {
   System.out.println(it.next());
  }
 }
 
}

分享到:
评论

相关推荐

    Java中Json字符串直接转换为对象的方法(包括多层List集合)

    Map&lt;String, Class&gt; classMap = new HashMap&lt;String, Class&gt;(); classMap.put("results", WeatherBean_Baidu_City.class); classMap.put("index", WeatherBean_Baidu_City_Index.class); classMap.put("weather_data...

    傻瓜式导入Excel文件教程

    Map&lt;Integer, Map&lt;Integer, String&gt;&gt; titles = new HashMap&lt;&gt;(); for (int i = 0; i &lt; cells; i++) { Cell cell = row.getCell(i); if (cell != null) { titles.put(i, Collections.singletonMap(i, cell....

    JAVA应用系统工具快捷托盘实例代码

    - `public static Map&lt;String, String&gt; commandMap = new HashMap&lt;String, String&gt;();`:创建了一个字符串映射,用来存储菜单项的名称和对应的系统命令。 - `SystemTray tray = SystemTray.getSystemTray();`:通过...

    android知识点整理

    - Java集合框架主要包括`List`、`Set`、`Map`等接口和它们的具体实现类如`ArrayList`、`HashSet`、`HashMap`等。 - `List`接口提供了按特定顺序存储元素的方式,支持重复元素。 - `Set`接口不允许重复元素,通常...

Global site tag (gtag.js) - Google Analytics