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();
}
}
}