练习22——集合的练习(list、map)

这篇博客介绍了如何使用集合进行数据处理,包括键盘输入10个数字并进行倒序和从大到小排序,以及利用Map存储学生姓名和成绩,并输出成绩前三名的学生。文中提供了两种不同的Map操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、键盘随鸡输入10个数字,分别按照倒序、从大到小排序

package test4;

import java.util.*;

/**
 * 〈一句话功能简述〉<br> 
 * 〈两个练习〉
 *
 * @author abu
 * @create 2019/7/24
 * @since 1.0.0
 */
public class TestList11 {
    public static void main(String[] args){
            System.out.println("please enter 10 integers");
            Scanner s = new Scanner(System.in);
            List list = new ArrayList();
            for (int i = 0; i < 10; i ++){
                int num = s.nextInt();
                list.add(i,num);
            }
            //随鸡输入10个整数之后,收进集合,按输入顺序排列
            System.out.println(list);
            //倒序排列
            Collections.reverse(list);
            System.out.println(list);
            //从大到小排列
            Collections.sort(list, new Comparator<Integer>() {
                public int compare(Integer o1, Integer o2){
                    if(o1 > o2){
                        return -1;
                    }else if(o1 == o2){
                        return 0;
                    }else{
                        return 1;
                    }
                }
            });

            for(Object num : list){
                System.out.println(num);
            }
    }
}

2、将学生的姓名和成绩录入map,输出成绩前三名的学生名字
①第一种方法输入信息到map(很天真)

package test4;

import java.util.*;

/**
 * 〈一句话功能简述〉<br> 
 * 〈习题2学生名字和成绩录入Map,并按分数显示成绩前三名学员的名字〉
 *
 * @author abu
 * @create 2019/7/25
 * @since 1.0.0
 */
public class TestList12 {
    public static void main(String[] args){
        List list1 = new ArrayList();
        List list2 = new ArrayList();
        Scanner s = new Scanner(System.in);
        System.out.println("请输入姓名");
        for(int i = 0; i < 4; i ++){
            String name = s.nextLine();
            list1.add(i,name);
        }
        System.out.println(list1);
        System.out.println("请输入成绩");
        for(int j = 0; j < 4; j ++){
            Scanner c = new Scanner(System.in);
            int score = c.nextInt();
            list2.add(j,score);
        }
        System.out.println(list1);
        Map map = new HashMap();
        for(int i = 0; i < 4; i ++){
            map.put(list1.get(i), list2.get(i));
        }
        System.out.println(map);
    }
}

②改进版信息输入map并输出所要求的信息

package test4;

import java.util.*;

/**
 * 〈一句话功能简述〉<br> 
 * 〈TestList12的另一种写法〉
 *
 * @author abu
 * @create 2019/7/25
 * @since 1.0.0
 */
public class TestList122 {
    public static void main(String[] args){
        List list1 = new ArrayList();
        List list2 = new ArrayList();
        //Scanner s = new Scanner(System.in);
        System.out.println("请输入姓名和成绩");
        for(int i = 0; i < 4; i ++){
            Scanner s = new Scanner(System.in);
            String name = s.nextLine();
            list1.add(i,name);
            for (int j = 0; j < 1; j ++){
                Scanner c = new Scanner(System.in);
                int score = c.nextInt();
                list2.add(i,score);
            }
        }
        System.out.println(list1);
        System.out.println(list2);
        //将姓名和成绩填入map
        Map map = new HashMap();
        for(int i = 0; i < 4; i ++){
            map.put(list1.get(i), list2.get(i));
        }
        System.out.println(map);
        //输出成绩前三名的名字
        List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<String,Integer>>(){
            public int compare(Map.Entry<String,Integer> o1, Map.Entry<String,Integer> o2){
                return (o2.getValue() - o1.getValue());
            }
        });

        for(Object obj : list){
            Map.Entry entry = (Map.Entry)obj;
            //System.out.println(entry);
            System.out.println(entry.getKey());
        }
    }
}

集合的习题写完啦~
进入day14嘻嘻~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值