初始化5条学员信息(姓名,年龄,性别),使用HashMap集合存储每一条数据每个小map集合有三条语句例如:(“姓名”,name)。再将map集合存储到ArrayList集合中,遍历集合,将学员信息打印到控制台。
交换第2条数据和第3条数据的信息,并再次遍历输出到控制台。
评分标准:
1.创建ArrayList对象,用于存储HashMap对象,正确写入泛型(5分)
2.通过键盘录入5个学员的信息 (10分),
3.将学员信息保存到map集合中,并将map集合保存到ArrayList集合中 (5分)
4.遍历集合打印输出结果(10分)
5.交换第2条数据与第3条数据的信息(10分)
6.再次输出(5分)
7.代码规范 (5分)
初始化5条学员信息(姓名,年龄,性别),使用HashMap集合存储每一条数据每个小map集合有三条语句,通过键盘录入5个学员的信息,代码如下:
/** * @return list集合 */ private static List<Map<String, String>> listData(){ List<Map<String, String>> list = new ArrayList<>(); for(int i = 1 ;i <= 5; i++){ Map<String,String> map = new HashMap<>(); map.put("姓名","张三"+i); map.put("年龄","20"); map.put("性别","男"); list.add(map); } return list; }
定义第几次输出遍历集合打印输出结果方法,代码如下:
/** * @param list 集合 * @param n 第几次输出 */ private static void outList(List<Map<String, String>> list,int n){ System.out.println("\n————————————第 " +n+ " 遍历集合打印输出结果——————————"); for (Map<String, String> map : list ) { for (Map.Entry<String, String> entry : map.entrySet()) { System.out.print("(“" + entry.getKey() + "”, " + entry.getValue() + ")"); } System.out.print("\n"); } }
调换List集合中两个指定位置的元素,若两个元素位置中间还有其他元素,需要实现中间元素的前移或后移的操作,代码如下:
/** * @param list 集合 * @param oldPosition 需要调换的元素 * @param newPosition 被调换的元素 * @param <T> */ public static <T> void swap(List<T> list, int oldPosition, int newPosition){ if(null == list){ throw new IllegalStateException("The list can not be empty..."); } T tempElement = list.get(oldPosition); // 向前移动,前面的元素需要向后移动 if(oldPosition < newPosition){ for(int i = oldPosition; i < newPosition; i++){ list.set(i, list.get(i + 1)); } list.set(newPosition, tempElement); } // 向后移动,后面的元素需要向前移动 if(oldPosition > newPosition){ for(int i = oldPosition; i > newPosition; i--){ list.set(i, list.get(i - 1)); } list.set(newPosition, tempElement); } }
主函数用于执行方法,代码如下:
public static void main(String[] args) { //初始化5条学员信息(姓名,年龄,性别),使用HashMap集合存储每一条数据每个小map集合有三条语句 List<Map<String, String>> list = listData(); int n = 1; //遍历集合打印输出结果 outList(list,n); //交换第2条数据与第3条数据的信息 swap(list,1,2); n++; //再次输出 outList(list,n); }
执行方法控制台输出结果如下:
请输入学员1姓名: 张三 请输入学员1年龄: 20 请输入学员1性别: 男 请输入学员2姓名: 李四 请输入学员2年龄: 21 请输入学员2性别: 女 请输入学员3姓名: 王五 请输入学员3年龄: 24 请输入学员3性别: 男 请输入学员4姓名: 赵柳 请输入学员4年龄: 19 请输入学员4性别: 女 请输入学员5姓名: 李鸿 请输入学员5年龄: 28 请输入学员5性别: 男 ————————————第 1 遍历集合打印输出结果—————————— (“姓名”, 张三)(“年龄”, 20)(“性别”, 20) (“姓名”, 李四)(“年龄”, 21)(“性别”, 21) (“姓名”, 王五)(“年龄”, 24)(“性别”, 24) (“姓名”, 赵柳)(“年龄”, 19)(“性别”, 19) (“姓名”, 李鸿)(“年龄”, 28)(“性别”, 28) ————————————第 2 遍历集合打印输出结果—————————— (“姓名”, 张三)(“年龄”, 20)(“性别”, 20) (“姓名”, 王五)(“年龄”, 24)(“性别”, 24) (“姓名”, 李四)(“年龄”, 21)(“性别”, 21) (“姓名”, 赵柳)(“年龄”, 19)(“性别”, 19) (“姓名”, 李鸿)(“年龄”, 28)(“性别”, 28)