Java练习--框架集合(11)

来源:互联网 发布:阿里云智能系统 编辑:程序博客网 时间:2024/06/03 13:05

1、作业:
选择某种Map集合保存学号从1到15的学员的学号(键)和姓名(值),学号用字符串表示,输入的时候要以学号乱序的方式存入Map集合,然后按照学号从大到小的顺序将Map集合中的元素输出打印。需要自定义Map集合的比较器Comparator,因字符串对象的大小比较是按字典序,而非对应的数值。
要求:必须使用Map集合的内部排序机制进行排序,不能在外部排序。

package 集合框架;import java.util.Comparator;import java.util.Map;import java.util.TreeMap;public abstract class TestMap {    public static void main(String arg[]){        TreeMap<String,String>map=new TreeMap<String,String>();          map.put("1101","李四");         //学号乱序添加元素          map.put("1106","张三");             map.put("1103","张敏");             map.put("1109","王林");             map.put("1107","范帅");             map.put("1111","李刚");             map.put("1115","小芳");            map.put("1113","赵六");            map.put("1112","小明");            map.put("1104","小红");            map.put("1102","小鹿");            map.put("1114","易峰");             map.put("1105","小兰");             map.put("1108","翠花");             map.put("1110","喵喵");          Map<String, String> result=sortMapByKey(map);//按Key值排序          for(Map.Entry<String, String> entry : result.entrySet()) {              System.out.println(entry.getKey() + " " + entry.getValue());          }      }      //使用Map按Key值进行排序      public static Map<String, String> sortMapByKey(Map<String, String> map) {          if (map == null || map.isEmpty()) {              return null;          }          Map<String, String> sortMap = new TreeMap<String, String>(new MyComparator());          sortMap.putAll(map);        return map;    }  }  //比较器类  class MyComparator implements Comparator<String>{      public int compare(String c1, String c2) {      return c1.compareTo(c2);    }       }

这里写图片描述

2、作业:
使用ArrayList集合,对其添加100个不同的元素:
1.使用add()方法将元素添加到ArrayList集合对象中;
2.调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方法,迭代的读取集合中的每个元素;
3.调用get()方法先后读取索引位置为50和102的元素,要求使用try-catch结构处理下标越界异常;

package 集合框架;import java.util.ArrayList;import java.util.Iterator;public class TestList {    public static void main(String []args) {        ArrayList list = new ArrayList();   //创建ArrayList集合       for(int i=1;i<=100;i++){           list.add(i);       }       System.out.println("迭代的读取集合中的每个元素:");         Iterator it=list.iterator();         while(it.hasNext())         {             Object obj=it.next();             System.out.println(obj);         }         System.out.println("读取索引位置为50和102的元素:");         try {             System.out.println(list.get(50)+"\t"+list.get(102));         } catch (Exception e) {             e.printStackTrace();         }       }    }

这里写图片描述
这里写图片描述