Day20

由于没带耳机去图书馆,今晚只能做题,通过做题把之前有些知识点又重新复习了下,一个下午在练车,早上把第一题和第二题做了出来,晚上修改了下第二题,加把第三题一部分想出来了。整体效率虽然低,但还是收获了很多,今天整体专注学习时间大于四个小时。加油OVO

 

Day20

今日练习

  1. 请从键盘随机输入10个整数保存在List中,并按倒序,从大到小的顺序显示出来。

package com.sorrymaker.Test;

import java.util.*;

public class Day18Test {
   public static void main(String[] args) {
       List list =new ArrayList();
       int number = 0;
       int count=10;
       Scanner scanner = new Scanner(System.in);
       System.out.print("请输入整数:");
       while (scanner.hasNextInt()  && count>0){
           if(count!=1) {
               System.out.print("请输入整数:");
          }
           number =scanner.nextInt();
           list.add(number);
           if(count==1){
               break;
          }
           count--;

      }
       //反转排序。
       Collections.reverse(list);
       System.out.println(list);
       //自然排序,重写方法,从大到小排序。
       Collections.sort(list, new Comparator() {
           @Override
           public int compare(Object o1, Object o2) {
               if(o1 instanceof Integer && o2 instanceof Integer){
                   Integer i1  = (Integer) o1;
                   Integer i2  = (Integer) o2;
                   return -i1.compareTo(i2);
              }
               throw new RuntimeException("数据不一样");
          }});
       System.out.println(list);
       scanner.close();
  }
}

 

  1. 请把学生名字与考试分数录入到集合中,并按分数显示前三名成绩学员的名字。

    TreeSet(Student(name,score,id))

package com.sorrymaker.Test;

import java.util.Comparator;
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;

public class Day19Test {
   //请把学生名字与考试分数录入到集合中,并按分数显示前三名成绩学员的名字。

   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       Comparator com = new Comparator() {
           @Override
           public int compare(Object o1, Object o2) {
               if (o1 instanceof Student && o2 instanceof Student) {
                   Student s1 = (Student) o1;
                   Student s2 = (Student) o2;
                   return -Integer.compare(s1.getScore(), s2.getScore());
              } else {
                   throw new RuntimeException("数据不匹配");
              }

          }
      };

       TreeSet set = new TreeSet(com);
       for (int i = 1; ; i++) {
           int score = 0;
           System.out.print("请输入第" + i + "位学生的姓名:");
           String name = scanner.next();
           System.out.print("请输入第" + i + "学生的成绩:(输入负数,则结束录入)");
           score =scanner.nextInt();
           int id = i;
           set.add(new Student(name, score, id));
           if (score<0){
               break;
          }
      }
       scanner.close();
       Iterator iterator = set.iterator();
       int count = 3;
       while (iterator.hasNext() && count > 0) {
           count--;
           System.out.println(iterator.next());
          }
      }
  }

 

3.姓氏统计:

一个文本文件中存储着北京所有高校在校生的姓名,格式如下每行一个名字,姓与名以空格分隔。

张 三

李 四

王 小五

统计所有姓氏在文件中出现的次数,请描述下你的解决方案。

//这里从网上找了一些资料,参考,用到了泛型,暂时没学,就这样子。

package com.sorrymaker.Test;

import org.junit.Test;

import java.util.*;

public class Day19Test3 {
   @Test
   public void test() {
       Set set = new HashSet();
       set.add("李四");
       set.add("王五");
       set.add("王2");
       set.add("王3");
       set.add("王4");
       Iterator iterator = set.iterator();
       List list = new ArrayList();
       while (iterator.hasNext()) {
           Object name = iterator.next();
           String str = name.toString();
           char ch = str.charAt(0);
           list.add(ch);
      }
       HashMap<Object, Integer> map = new HashMap<>();
       for (int i = 0; i < list.size(); i++) {
           Object obj = list.get(i);
           //如果这个姓氏不存在
           if (!map.containsKey(obj)) {
               map.put(obj, 1);
               //这个字符已经存在
          } else {
               map.put(obj, map.get(obj) + 1);
          }
      }
       System.out.println(map);
  }
}

 

 

4.对一个Java源文件中的关键字进行计数。

提示:Java源文件中的每一个单词,需要确认该单词是否是一个关键字。为了高效处理这个问题,将所有的关键字保存在一个HashSet中。用contains()来测试,

基本版,想不出来了,等我找到更高级的,就更新这个。

public class Day19Test4 {
   public static void main(String[] args) {

       File file =new File("D:\\java基础\\基础语法\\src\\com\\sorrymaker\\CollectionTest\\collectionTest1.java");
       int count=0;
       try (Scanner scanner = new Scanner(file)) {

           while (scanner.hasNext()) {

               String word = scanner.next();

               HashSet set =new HashSet();

               set.add("import");
               set.add("public");
               set.add("static");
               if(set.contains(word)){
                   count+=1;
              }
          }
           System.out.println(count);
      } catch (FileNotFoundException e) {
           e.printStackTrace();
      }
  }
}

 

posted @ 2021-03-31 22:02  独眼龙  阅读(310)  评论(0)    收藏  举报