java的Scanner类、Random类、ArrayList类

第1章 API

1.1 概述

API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典 ,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。

1.2 API使用步骤

  1. 打开帮助文档。

  2. 点击显示,找到索引,看到输入框。

  3. 你要找谁?在输入框里输入,然后回车。

  4. 看包。java.lang下的类不需要导包,其他需要。

  5. 看类的解释和说明。

  6. 学习构造方法。

  7. 使用成员方法。

第2章 Scanner类

2.1 什么是Scanner类

一个可以解析基本类型和字符串的简单文本扫描器。

例如,以下代码使用户能够从 System.in 中读取一个数:

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

备注:System.in 系统输入指的是通过键盘录入数据。

2.2 引用类型使用步骤

1、导包
import 包名.类名;
  • 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写。

  • 只有java.Lang包下的内容不需要导包,其他的包都需要 import语句。

2、创建

使用该类的构造方法,创建一个该类的对象

类名称 对象名 = new 类名称();
3、使用
变量名.方法名();

2.3 Scanner使用步骤

查看类

  • java.util.Scanner :该类需要import导入后使用。

查看构造方法

  • public Scanner(InputStream source): 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。

查看成员方法

  • public int nextInt():将输入信息的下一个标记扫描为一个 int 值
import java.util.Scanner; // 1. 导包

public class Demo01Scanner {

    public static void main(String[] args) {
        // 2. 创建
        // 备注:System.in代表从键盘进行输入
        Scanner sc = new Scanner(System.in);

        // 3. 获取键盘输入的int数字
        int num = sc.nextInt();
        System.out.println("输入的int数字是:" + num);

        // 4. 获取键盘输入的字符串
        String str = sc.next();
        System.out.println("输入的字符串是:" + str);
    }
}

2.4 匿名对象

1、概念

匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。虽然是创建对象的简化写法,但是应用场景非常有限。

匿名对象 :没有变量名的对象。

  1. 创建对象的标准格式:
类名称 对象名 = new 类名称();
  1. 注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
2、应用场景
  1. 如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
public static void main(String[] args) {
    // 左边的one就是对象的名字
    Person one = new Person();
    one.name = "高圆圆";
    one.showName(); // 我叫高圆圆
    System.out.println("===============");

    // 匿名对象
    new Person().name = "赵又廷";
    new Person().showName(); // 我叫:null
}
  1. 匿名对象可以作为方法的参数和返回值
  	public static void main(String[] args) {
        // 普通使用方式
//        Scanner sc = new Scanner(System.in);
//        int num = sc.nextInt();

        // 匿名对象的方式
//        int num = new Scanner(System.in).nextInt();
//        System.out.println("输入的是:" + num);

        // 使用一般写法传入参数
//        Scanner sc = new Scanner(System.in);
//        methodParam(sc);

        // 使用匿名对象来进行传参
//        methodParam(new Scanner(System.in));

        Scanner sc = methodReturn();
        int num = sc.nextInt();
        System.out.println("输入的是:" + num);
    }

    public static void methodParam(Scanner sc) {
        int num = sc.nextInt();
        System.out.println("输入的是:" + num);
    }

    public static Scanner methodReturn() {
//        Scanner sc = new Scanner(System.in);
//        return sc;
        return new Scanner(System.in);
    }

第3章 Random类

3.1 什么是Random类

Random类用来生成随机数字

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

3.2 Random使用步骤

1、导包

import java.util.Random;

2、创建
Random r = new Random(); // 小括号当中留空即可
3、使用
  1. 获取一个随机的int数字(范围是int所有范围,有正负两种):

    int num = r.nextInt()
    
  2. 获取一个随机的int数字(参数代表了范围,左闭右开区间):

    int num = r.nextInt(3)
    

    实际上代表的含义是:[0,3),也就是0~2

  3. 获取[1,n]之间的随机数,包含n

    int number = r.nextInt(n) + 1; 
    

第4章 ArrayList类

4.1 引入——对象数组

定义一个数组,用来存储3个Person对象。

public static void main(String[] args) {
    // 首先创建一个长度为3的数组,里面用来存放Person类型的对象
    Person[] array = new Person[3];

    Person one = new Person("迪丽热巴", 18);
    Person two = new Person("古力娜扎", 28);
    Person three = new Person("玛尔扎哈", 38);

    // 将one当中的地址值赋值到数组的0号元素位置
    array[0] = one;
    array[1] = two;
    array[2] = three;

    System.out.println(array[0]); // 地址值
    System.out.println(array[1]); // 地址值
    System.out.println(array[2]); // 地址值

    System.out.println(array[1].getName()); // 古力娜扎
}

数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。

4.2 什么是ArrayList类

数组的长度不可以发生改变。
但是ArrayList集合的长度是可以随意变化的

1、泛型

对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型。

4.2 ArrayList使用步骤

1、导入
import java.util.ArrayList;
2、创建
ArrayList<String> list = new ArrayList<String>();

在JDK 7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:

ArrayList<String> list = new ArrayList<>();
3、使用
ArrayList<String> list = new ArrayList<>();
System.out.println(list); // []

// 向集合当中添加一些数据,需要用到add方法。
list.add("赵丽颖");
System.out.println(list); // [赵丽颖]

list.add("迪丽热巴");
list.add("古力娜扎");
list.add("玛尔扎哈");
System.out.println(list); // [赵丽颖, 迪丽热巴, 古力娜扎, 玛尔扎哈]
4、注意

对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
如果内容是空,得到的是空的中括号:[]

4.3 ArrayList集合的常用方法和遍历

1、常用方法

public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。但是对于其他集合(今后学习)来说,add添加动作不一定成功。

public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。

public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。

public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。

2、遍历
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

快速生成:list.fori

4.4 ArrayList集合存储基本数据类型

ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似<int>不能写


如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。(引用类型,包装类都位于java.lang包下)

基本类型包装类
byteByte
shortShort
intInteger 【特殊】
longLong
floatFloat
doubleDouble
charCharacter 【特殊】
booleanBoolean
ArrayList<Integer> listC = new ArrayList<>();
listC.add(100);
listC.add(200);
System.out.println(listC); // [100, 200]

int num = listC.get(1);
System.out.println("第1号元素是:" + num);

从JDK 1.5+开始,支持自动装箱、自动拆箱。

  • 自动装箱:基本类型 --> 包装类型

  • 自动拆箱:包装类型 --> 基本类型

4.5 ArrayList练习

1、生成6个1~33之间的随机整数,添加到集合,并遍历
public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    Random r=new Random();
    for (int i = 0; i < 6; i++) {
        list.add(r.nextInt(33)+1);
        System.out.println(list.get(i));
    }
}
2、自定义4个学生对象,添加到集合,并遍历
ArrayList<Student> list = new ArrayList<>();

//创建学生对象
Student s1 = new Student("dc", 17);
Student s2 = new Student("ll", 18);
Student s3 = new Student("cc", 19);

//把学生对象作为元素添加到集合中
list.add(s1);
list.add(s2);
list.add(s3);

//遍历集合
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i).getName() + ":" + list.get(i).getAge());
}
3、按照指定格式打印集合

题目:
定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。

格式参照 {元素@元素@元素}。

System.out.println(list); [10, 20, 30]

printArrayList(list); {10@20@30}

public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<>();
    list.add("张三丰");
    list.add("宋远桥");
    list.add("张无忌");
    list.add("张翠山");
    System.out.println(list); // [张三丰, 宋远桥, 张无忌, 张翠山]

    printArrayList(list);
}


public static void printArrayList(ArrayList<String> list) {
    // {10@20@30}
    System.out.print("{");
    for (int i = 0; i < list.size(); i++) {
        String name = list.get(i);
        if (i == list.size() - 1) {
            System.out.println(name + "}");
        } else {
            System.out.print(name + "@");
        }
    }
}
4、筛选集合

用一个大集合存入2个随机数字,然后筛选其中的偶数元素,放到小集合当中要求使用自定义的方法来实现筛选。

public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    ArrayList<Integer> chosed = new ArrayList<>();
    Random r = new Random();
    for (int i = 0; i < 20; i++) {
        list.add(r.nextInt(50));
    }
    for (int i = 0; i < list.size(); i++) {
        System.out.print(list.get(i) + " ");
    }
    System.out.println();
    chosed = choose(list);
    for (int i = 0; i < chosed.size(); i++) {
        System.out.print(chosed.get(i) + " ");
    }

}

public static ArrayList<Integer> choose(ArrayList<Integer> list) {
    ArrayList<Integer> chosed = new ArrayList<>();
    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) % 2 == 0) {
            chosed.add(list.get(i));
        }
    }
    return chosed;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值