Scanner类,Random类,ArryList集合的基本使用规则

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 Scanner类,Random类,ArryList集合的基本使用规则,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、Scanner类

注意:Scanner类是属于引用数据类型

引用数据类型的使用:

与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。

数据类型  变量名  =  new 数据类型();

//Scanner sc = new Scanner();

每种引用数据类型都有其功能,我们可以调用该类型实例的功能。

变量名.方法名();

l  Scanner类

Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。

Scanner使用步骤:

导包:import java.util.Scanner;

创建对象实例:Scanner sc = new Scanner(System.in);

调用方法:

import java.util.Scanner;

public class ScannerDemo01 {

    public static void main(String[] args) {

        //创建Scanner引用类型的变量

        Scanner sc = new Scanner(System.in);

        //获取数字

        System.out.println("请输入一个数字");

        int n = sc.nextInt();

        System.out.println("n的值为" + n);

        //获取字符串

        System.out.println("请输入一个字符串");

        String str = sc.next();

        System.out.println("str的值为" + str);

    }
}

运行结果如下图所示。

Scanner类,Random类,ArryList集合的基本使用规则

nextInt()、next()的理解

nextInt():只读取数值,剩下”\n”还没有读取,并将cursor放在本行中

next():只读空格之前的数据,并且cursor指向本行

next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。

二、random类

注意:

random() 方法返回随机生成的一个实数,它在[0,1)范围内。

语法:

import random

random.random()

 例题:

import random

//生成第一个随机数

print “random() : “, random.random()

// 生成第二个随机数

print “random() : “, random.random()

 运行后输出结果为:

random() :  0.281954791393
random() :  0.309090465205

 例题:猜数字小游戏

package test6;
 
import java.util.Random;
import java.util.Scanner;
 
public class TestRandom {
    public static void main(String[] args) {
        //使用Scanner和Random完成一个猜数字小游戏,猜1-100之间的数字
        Scanner scanner = new Scanner(System.in);
        //1.产生一个1-100之间的随机数
        Random random = new Random();
        //随机100个数字0-99,然后+1 就是1-100
        int num = random.nextInt(100)+1;
        //定义一个用户用来统计用户猜对用了几次
        int count = 0;
        //2.不断执行循环,让用户输入要猜的数组并进行大小提示
        do{
            System.out.println("请输入猜的数字");
            int input = scanner.nextInt();
 
            if(input>num){
                System.out.println("猜大了");
            }else if(input<num){
                System.out.println("猜小了");
            }else{
                System.out.println("恭喜你,猜对了");
                break;
            }
            count++;
        }while(true);
        //3.结束循环表示用户猜对并提示猜对次数
        System.out.println("你猜对了数字"+num+"用了"+count+"次");
    }
}

三、ArrayList集合

1. ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。

2. ArrayList 继承了 AbstractList ,并实现了 List 接口

3. ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:

import java.util.ArrayList; // 引入 ArrayList 类

ArrayList<E> objectName =new ArrayList<>();  // 初始化
  • E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型
  • objectName: 对象名。

4. ArrayList 是一个数组队列,提供了相关的添加、删除、修改等功能。

5. ArrayList 中的元素实际上是对象,在以上实例中,数组列表元素都是字符串 String 类型。

如果我们要存储其他类型,而 <E> 只能为引用数据类型,这时我们就需要使用到基本类型的包装类。

基本类型对应的包装类表如下:

基本类型 引用类型
boolean Boolean
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character

访问元素 :

访问 ArrayList 中的元素可以使用 get() 方法:

import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
System.out.println(sites.get(1));  // 访问第二个元素
}
}

注意数组的索引值从 0 开始。

执行输出结果为:

pinduoduo

添加元素:

ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法:

import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
System.out.println(sites);
}
}

 执行输出结果为:

[weipinhui, pinduoduo, Taobao, jingdong]

 修改元素:

如果要修改 ArrayList 中的元素可以使用 set() 方法:

import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
sites.set(2, “Weixin”); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
}

执行输出结果为:

[weipinhui, pinduoduo, Weixin, jingdong]

 删除元素:

如果要删除 ArrayList 中的元素可以使用 remove() 方法:

import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
sites.remove(3); // 删除第四个元素
System.out.println(sites);
}
}

执行输出结果为:

[weipinhui, pinduoduo, Taobao]

 计算大小:

如果要计算 ArrayList 中的元素数量可以使用 size() 方法:

import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add(“weipinhui”);
sites.add(“pinduoduo”);
sites.add(“Taobao”);
sites.add(“jingdong”);
System.out.println(sites.size());
}
}

执行输出结果为:

4

例题: 随机点名不重复案例

public static class ArrayListTest{
        public static void main(String[] args){
            //可以使用Arrays的asList实现序列化一个集合
            List<String> list= Arrays.asList("玛卡巴卡","汤波哩波波","唔西迪西","依古比古","小点点");
            //把list作为参数重新构建一个新的ArrayList集合
            ArrayList<String> names=new ArrayList<>(list);
 
            //使用Scanner、Random、ArrquList完成一个不重复的点名程序
            Random random=new Random();
            Scanner scanner=new Scanner(System.in);
            while (true){
                //如果集合中没有元了,则结束循环
                if(names.size()==0){
                    System.out.println("已完成所有学生抽查,抽查结束请重新开始!");
                    break;
                }
                System.out.println("确认点名请输入Y/y");
                String input = scanner.next();
                if (input.equals("Y")|| input.equals("y")){
                    //随机一个集合的下标
                    int index = random.nextInt(names.size());
                    System.out.println("本次抽到: "+names.get(index));
                    //该学生已被抽到,把他从集合中移除
                    names.remove(index);
                }else {
                    System.out.println("本次抽查结束!");
                    break;
                }
            }
 
        }
    }

确认点名请输入Y/y
y
本次抽到: 依古比古
确认点名请输入Y/y
y
本次抽到: 小点点
确认点名请输入Y/y
n
本次抽查结束!

Process finished with exit code 0

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/130157.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!