Java基础(5)——API(Scanner类、Random类、ArrayList 类)

1.API

概述

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

API使用步骤

  1. 打开帮助文档。
  2. 点击显示,找到索引,看到输入框。
  3. 你要找谁?在输入框里输入,然后回车。
  4. 看包。java.lang下的类不需要导包,其他需要。
  5. 看类的解释和说明。
  6. 学习构造方法。
  7. 使用成员方法。

2.Scanner类

了解了API的使用方式,我们通过Scanner类,熟悉一下查询API,并使用类的步骤。

2.1什么是Scanner类

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

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

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

2.2 引用类型使用步骤

1.导包

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

import 包名.类名;
  • 举例:
java.util.Scanner;

2.创建对象

3.调用方法

2.3 Scanner使用步骤

1. 查看类

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

2. 查看构造方法

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

3. 查看成员方法

public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。

2.4 Scanner使用举例

/**
    *题目:
    *键盘输入三个int数字,然后求出其中的最大值。
    *
    *思路:
    *1. 既然是键盘输入,肯定需要用到Scanner
    *2. Scanner三个步骤:导包、创建、使用nextInt()方法
    *3. 既然是三个数字,那么调用三次nextInt()方法,得到三个int变量
    *4. 无法同时判断三个数字谁最大,应该转换成为两个步骤:
    *    4.1 首先判断前两个当中谁最大,拿到前两个的最大值
    *    4.2 拿着前两个中的最大值,再和第三个数字比较,得到三个数字当中的最大值
    *5. 打印最终结果
 */
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数字:");
        int a = scanner.nextInt();
        System.out.println("请输入第二个数字:");
        int b = scanner.nextInt();
        System.out.println("请输入第三个数字:");
        int c = scanner.nextInt();
        int max = getMax(a, b, c);
        System.out.println(max);
    }
    public static int getMax(int a,int b,int c){
        int max = a;
        if(b > max){
            max = b;
        }
        if (c > max){
            max = c;
        }
        return max;
    }
}

2.5 匿名对象【了解】

概念
创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用
场景非常有限。

  • 匿名对象 :没有变量名的对象。
  • 使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。

1.匿名对象的创建

先创建一个Person类:

public class Person {
    String name;
    public void showName() {
        System.out.println("我叫:" + name);
    }
}

然后使用该类,创建匿名对象:

/*
创建对象的标准格式:
类名称 对象名 = new 类名称();

匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
new 类名称();

注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
 */
public class Demo01Anonymous {

    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
    }

}

2.匿名对象作为传入参数或者返回值

public class Demo02Anonymous {

    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类

使用就三个步骤,导包,创建对象,使用(就是查API文档的时候要查找的包,构造方法,成员方法)
Random类的关键方法:

Random random = new Random();
random.nextInt();//产生的是一个int范围内的随机数(正负2的31次方)
random.nextInt(10);//产生的是一个左闭右开的[0,10)的范围内的随机数
random.nextInt(10)+1;//产生的是一个在[1,11)或者说是[1,10]之间的随机整数

来一个猜数字的案例:

/*
题目:
用代码模拟猜数字的小游戏。

思路:
1. 首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法
2. 需要键盘输入,所以用到了Scanner
3. 获取键盘输入的数字,用Scanner当中的nextInt方法
4. 已经得到了两个数字,判断(if)一下:
    如果太大了,提示太大,并且重试;
    如果太小了,提示太小,并且重试;
    如果猜中了,游戏结束。
5. 重试就是再来一次,循环次数不确定,用while(true)。
 */
 public class RandomGame {
    public static void main(String[] args) {
        //获取到随机数
        Random r = new Random();
        int result = r.nextInt(100) + 1;//[1,100]
        //开始进行猜数字
        while(true){
            //收集键盘输入的猜到的数字
            System.out.println("请输入你想要猜的数字:");
            int guess = new Scanner(System.in).nextInt();
            if(guess == result){
                System.out.println("恭喜你才对了!");
                break;
            }else if(guess < result){
                System.out.println("你猜的数字小了");
            }else if (guess > result){
                System.out.println("你猜的数字大了");
            }
        }
        System.out.println("游戏结束!");
    }
}

4.ArrayList类

4.1为什么需要这个类

普通的数组定义的时候,长度都是固定的,不能够变化的,但是有时候需要新增一些数据的时候,需要数组变大,这时候就需要用到ArrayList这个类了。

4.2使用ArrayList

对于集合类的使用,无非就是增删改查这几个操作:

  • 增(添加一个元素到集合中):public boolean add(E e)
	boolean returnPara = ArrayList.add(1);
    ArrayList.add(xxx);

此外还有:
void add(int index, E element)
将指定的元素插入此列表中的指定位置。
boolean addAll(int index, Collection<? extends E> c)
从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。

  • 删(从集合中删除一个元素):public E remove(int index)
    删除所有的:clear(),
ArrayList<Student> list = new ArrayList<Student>();
list.add("zhangsan");
list.add("lisi")
Student s = list.remove(0);
  • 改:E set(int index, E element) 用指定的元素替代此列表中指定位置上的元素。
返回值类型 方法名称 说明
boolean isEmpty() 如果此列表中没有元素,则返回 true
int lastIndexOf(Object o) 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
int indexOf(Object o) 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
int size() 返回此列表中的元素数。
E get(int index) 返回此列表中指定位置上的元素。
boolean contains(Object o) 如果此列表中包含指定的元素,则返回 true。

最后来个案例(找出一个随机数组中的所有偶数):

public class ArraysListDemo {
    //产生一个随机数的集合,然后收集其中的偶数
    public static void main(String[] args) {
        Random random = new Random();
        ArrayList<Integer> list = new ArrayList<Integer>();
        //往集合中添加元素
        for (int i = 0; i < 10; i++) {
            int num = random.nextInt(100)+1;//[1,100]
            list.add(num);
        }
        System.out.println("所有的元素:");
        System.out.println(list);
        System.out.println("======================");
        System.out.println("所有的偶数:");
        System.out.println(getArrayList(list));
    }

    public static ArrayList<Integer> getArrayList(ArrayList<Integer> list){
        ArrayList<Integer> smallList = new ArrayList<Integer>();
        for(int i = 0;i < list.size();i++){
            if(list.get(i) % 2 == 0){//是偶数
                smallList.add(list.get(i));
            }
        }
        return smallList;
    }
}
发布了66 篇原创文章 · 获赞 1 · 访问量 2417

猜你喜欢

转载自blog.csdn.net/qq_36079912/article/details/103835881