Scanner类、Random类、ArrayList类

API

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

API的使用

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

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

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

java.util.Scanner;

2、创建对象,使用该类的构造方法,创建一个该类的对象。
格式:数据类型 变量名 = new 数据类型(参数列表);

Scanner sc = new Scanner(System.in);

3、调用方法,调用该类的成员方法,完成指定功能。
格式:变量名.方法名();

int i = sc.nextInt(); // 接收一个键盘录入的整数

Scanner使用步骤

查看类
java.util.Scanner :该类需要import导入后使用。
查看构造方法

查看成员方法
public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。

//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);
}
}

匿名对象

public class DemoAnonymous {

    /*创建对象的标准格式:
    类名称 对象名 = new 类名称();
    匿名对象就是只有右边的对象,没有左边的名字和赋值运算符
    new 类名称()*/

    public static void main(String[] args) {
        Person per1 = new Person();
        per1.name = "高圆圆";
        per1.showName();
        System.out.println("-------");
        new Person().name = "赵又廷";
        new Person().showName();

    }
}
import java.util.Scanner;

public class Demo2Anonymous {
    public static void main(String[] args) {
        //普通方式
        Scanner sc = new Scanner(System.in);
        int num =sc.nextInt();
        //匿名方式
        int num1 =new Scanner(System.in).nextInt();
        System.out.println("输入的数字是:"+num1);
        //使用一般方法传入参数
        Scanner Sc = new Scanner(System.in);
        methodParam(Sc);
        //使用匿名对象来进行传参
        methodParam(new Scanner(System.in));
        Scanner param = methodReturn();
        int num3 = param.nextInt();
        System.out.println("输入的数字:"+num3);

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

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

实例

import java.util.Random;
import java.util.Scanner;

public class DemoRandomGame {

    /*题目:模拟猜数字游戏
        思路:
        1、首先需要产生一个随机数,并且一旦产生不在变化,用random.nextInt方法
        2、需要键盘输入,所以用到了Scanner
        3、获取键盘输入的数字,用Scanner.nextInt方法
        4已经得到了两个数字,判断(if)一下:
        如果太小了,提示太小,并重试;
        如果太大了,提示太大,并重试;
        如果猜中了,游戏结束
        5、重试就是再来一次,循环次数不确定,用while(true)*/
    public static void main(String[] args) {
        int ram = new Random().nextInt(101);
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你猜的数字");
            int guessNum = sc.nextInt();
            if (ram < guessNum) {
                System.out.println("你猜的数字太大,请重试");
            } else if (ram > guessNum) {
                System.out.println("你猜的数字太小,请重猜");

            } else {
                System.out.println("恭喜你,猜中啦!");
                break;
            }


        }
        System.out.println("游戏结束");
    }


}

对象数组

package demo01;

public class Demo01Array {
    /*定义一个数组,用来存储3个Person对象
    数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变*/

    public static void main(String[] args) {
        //创建一个长度为3的数组,里面用来存放Persin类型对象
        Person[] array = new Person[3];
        Person one = new Person("迪丽热巴",18);
        Person two = new Person("范冰冰",12);
        Person three = new Person("赵丽颖",11);
        //将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[0].getName());


    }
}

ArrayList

package demo01;

import java.util.ArrayList;

/*数组的长度不可以改变
但是ArrayList集合长度是可以随意改变的

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

ArrayList 常用方法:
list.add(E e)
list.get(int index)
list.remove(int index)
list.size()
*/
public class Demo01ArrayList {
    public static void main(String[] args) {
        //创建了一个ArrayList集合,集合的名称是list,里面装的全是String字符串类型的数据;
        //备注:从JDK1.7开始,右侧尖括号内部可以不写内容,但是<>本身还是要写的
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);//[]
        //向集合中添加一些数据,需要用到add方法
        list.add("赵丽颖");
        list.add("范冰冰");
        list.add("古力娜扎");
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));

        }

    }
}
package demo01;

/*如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型使用的“包装类”
基本类型        包装类
byte            Byte
short           Short
int             Integer   【特殊】
long            Long
float           Float
double          Double
char            character   【特殊】
boolean          Boolean

从JDK1.5+开始,支持自动装箱,自动拆箱
自动装箱:基本类型 → 包装类型
自动拆箱:包装类型 → 基本类型*/


import java.util.ArrayList;

public class Demo02ArrayList {
    public static void main(String[] args) {
        //泛型只能是引用数据类型,不能是基本数据类型,错误写法
        //ArrayList<String> list = new ArrayList<> ();
        ArrayList<Integer> list = new ArrayList<>();
        list.add(100);
        list.add(200);
        list.add(300);
        System.out.println(list);

    }
}

举例

package demo01;

import java.util.ArrayList;
import java.util.Random;

/*题目:产生6个1-33之间的随机数字,添加到集合并遍历集合
思路:
1、创建一个集合,<Integer>
2、产生随机数,用到Random
3、用循环6次来产生6个随机数,for循环
4、循环内调用r.nextInt(int n),参数是33,0-32,整体+1是1-33
5、把数字添加到集合中:add
6、遍历集合:for、size、get
*/
public class Demo03ArrayList {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            int num = r.nextInt(32)+1;
            list.add(num);

        }
        System.out.println(list);

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值