day07【Scanner类、Random类、ArrayList类】

每日一句

挺喜欢这句话的:可是亲爱的,你真的还不够辛苦。不够努力,不够勤奋。

日记

早晨订了一个7:20的闹钟,因为第一节是巩老师的课,要早早的去。
第一节课巩老师讲了讲上几节课金子搬运的问题,我们组一开始想用暴力,感觉方法不是太好。
于是开始研究dp01背包问题,无奈,最后代码只能达到会用以及自己能够看懂的程度,只能换成了最开始的暴力解决。
第二个问题,给出一个班级的数据,数据中包含每个人最好的6个朋友,根据数据能够求出谁的欢迎度最高,我们想的直接化成N个字符串
寻找里面出现次数最多的字符串。方法还行,不过最后老师点评说:最好是用上文件自动输入,这样才能实现自动化。

第 一 章 API

莫有什么好说的,主要是一个软件的查询。

第 二 章 Scanner类

什么是Scanner类

一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 System.in 中读取一个数:

1
2
Scanner sc = new Scanner(System.in);//属于引用类的方法
int i = sc.nextInt();//整数引用

引用包的步骤

  1. 导包:使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。 格
    式:import 包名.类名;

  2. 创建对象:使用该类的构造方法,创建一个该类的对象。格式如下:

    1
    2
    数据类型  变量名  =  new 数据类型(参数列表);
    Scanner stu = new Scanner(System.in);
  3. 调用方法:调用该类的成员方法,完成指定的功能,格式:

    1
    2
    变量名。方法名();
    int i = stu.nextInt();

Scanner使用步骤

  1. 查看类
    java.util.Scanner :该类需要import导入后使用。
  2. 查看构造方法:public Scanner(InputStream source) : 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
  3. 查看成员方法:public int nextInt():将输入信息的下一个标记扫描为一个 int 值。
  4. 使用Scanner类,完成接收键盘录入数据的操作,代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //1. 导包
    import java.util.Scanner;
    public class Demo01_Scanner {
       public static void main(String[] args) {  
         //2. 创建键盘录入数据的对象    
         Scanner sc = new Scanner(System.in);    
         //3. 接收数据    
         System.out.println("请录入一个整数:");    
         int i = sc.nextInt();    
         //4. 输出数据    
         System.out.println("i:"+i);    
       }  
    }

第三章 Random类

什么是Random类

此类的实例用于生成伪随机数。例如,以下代码使用户能够得到一个随机数:

1
2
Random r = new Random();
int i = r.nextInt();

Random 使用步骤

  1. 查看类:java.util.Random:该类需要 import导入使后使用。
  2. 查看构造方法:public Random():创建一个新的随机数生成器。
  3. 查看成员方法:public int nextInt(int n):返回一个伪随机数,范围在0(包括)和 指定值n(不包括)之间的int 值。如果想要获得1~N之间的数,直接`int num = r.nextInt(n) + 1;
  4. 使用Random类,完成生成3个10以内的随机整数的操作,代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //1. 导包
    import java.util.Random;
    public class Demo01_Random {
       public static void main(String[] args) {  
            //2. 创建键盘录入数据的对象
            Random r = new Random();
            for(int i = 0; i < 3; i++){
                //3. 随机生成一个数据
                int number = r.nextInt(10);
                //4. 输出数据
                System.out.println("number:"+ number);
            }      
        }
    }

第四章 ArrayList类(难点)

什么是ArrayList类

java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素.ArrayList 中可不断添加元素,其大小也自动增长。

ArrayList 使用步骤

  1. 查看类:java.util.ArrayList <E> :该类需要 import导入使后使用。:表示一种指定的数据类型,叫做泛型。E:取自Element(元素)的首字母。在出现E的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:
  2. 查看构造方法:public ArrayList() :构造一个内容为空的集合。
  3. 基本格式:在JDK7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:ArrayList<String> list = new ArrayList<>();
  4. 查看成员方法:public boolean add(E e) : 将指定的元素添加到此集合的尾部。类型的对象。使用ArrayList类,存储三个字符串元素,代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class Test02StudentArrayList {
      public static void main(String[] args) {
        //创建学生数组
        ArrayList<String> list = new ArrayList<>();
        //创建学生对象
        String s1 = "曹操";
        String s2 = "刘备";
        String s3 = "孙权";
        //打印学生ArrayList集合
        System.out.println(list);
        //把学生对象作为元素添加到集合
        list.add(s1);
        list.add(s2);
        list.add(s3);
    //打印学生ArrayList集合
        System.out.println(list);
      }
    }

常用方法和遍历

对于元素的操作,基本体现在——增、删、查。常用的方法有:

  1. public boolean add(E e) :将指定的元素添加到此集合的尾部。
  2. public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
  3. public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
  4. public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界
  5. 执行代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public class Demo01ArrayListMethod {
      public static void main(String[] args) {
        //创建集合对象
        ArrayList<String> list = new ArrayList<String>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        //public E get(int index):返回指定索引处的元素
        System.out.println("get:"+list.get(0));
        System.out.println("get:"+list.get(1));
        System.out.println("get:"+list.get(2));
        //public int size():返回集合中的元素的个数
        System.out.println("size:"+list.size());
        //public E remove(int index):删除指定索引处的元素,返回被删除的元素
        System.out.println("remove:"+list.remove(0));
        //遍历输出
        for(int i = 0; i < list.size(); i++){
          System.out.println(list.get(i));
        }
      }
    }

如何存储基本数据类型

ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的
包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:

我们发现,只有 Integer 和 Character 需要特殊记忆,其他基本类型只是首字母大写即可。那么存储基本类型数
据,代码如下:

1
2
3
4
5
6
7
8
9
10
public class Demo02ArrayListMethod {
  public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    System.out.println(list);    
  }
}

总结

首先是输入类Scanner,主要用来做题。随机数的类Random,用来获得某个范围内的随机数据,最后Arraylist,一个动态的数组,可以用来储存数据。

0%
-->