Scanner、Random和 ArrayList集合的基本使用规则

本文介绍了Java编程中Scanner类用于用户输入,Random类生成随机数,以及ArrayList集合的操作。通过示例代码展示了猜数字游戏和随机点名程序,阐述了ArrayList的动态扩容、添加、查找、修改和删除等方法。同时讨论了ArrayList的优缺点,如快速访问和遍历,但插入删除效率较低。
摘要由CSDN通过智能技术生成

1、Scanner类


  Scanner类的作用是获取用户的输入

常用方法:

String next():将输入信息的下一个标记扫描为一个字符串
Int nextInt():将输入信息的下一个标记扫描为一个int
Double nextDouble():将输入信息的下一个标记扫描为double
String nextLine():扫描当前输入行

2、Random类


  Random类的作用是生成随机数 

常用方法:

int nextInt(int n):生成一个随机数,范围[0, n)
double nextDouble():生成一个随机小数[0.0, 1.0)

  猜数字游戏

import java.util.Random;
import java.util.Scanner;
 
public class Demo1 {
    public static void main(String[] args){
        //使用Scanner类与Random类完成一个猜数字小游戏
        Scanner sc=new Scanner(System.in);
        //产生一个1--100之间的随机数
        Random r=new Random();
        int num=r.nextInt(100)+1;
        //定义一个用来统计用户猜对了多少次
        int count=0;
        //不断执行循环,让用户输入要猜的数字并进行大小提示
        do{
            System.out.println("输入猜的数字: ");
            int in=sc.nextInt();
            if(in>num){
                System.out.println("猜大了");
            }else if(in<num){
                System.out.println("猜小了");
            }else{
                System.out.println("恭喜你,猜对了");
                break;
            }
            count++;
        }while (true);
 
        //结束循环表示用户猜对
        System.out.println("你猜对了数字"+num+"用了"+count+"次");
 
    }
}

3、ArrayList集合

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

2.对于ArrayList来说有一个尖括号<E>代表泛型泛型也就是装在集合当中所有的元素,都是统一的什么类型。

注意:泛型只能是引用类型(   Byte 、 Short 、Integer、Long 、Float 、Double 、Character、 Boolean),不能是基本类型(byte int short long float double boolean char)

3.常用方法

添加:  add() 方法 

 查找: get() 方法  注意:数组的索引值从 0 开始。

修改: set()方法

删除:remove() 方法

长度: size() 方法  

 随机点名

import java.util.*;
public class two {
    public static void main(String[] args) {
        //可以使用Arrays的asList实现序列化一个集合
        List<String> list= Arrays.asList("叶枫","饶政","郭汶广","王志刚","时力强","柴浩阳","王宁","雷坤恒",
                "贠耀强","齐东豪","袁文涛","孙啸聪","李文彬","孙赛欧","曾毅","付临",
                "王文龙","朱海尧","史艳红","赵冉冉","詹梦","苏真娇","张涛","王浩",
                "刘发光","王愉茜","牛怡衡","臧照生","梁晓声","孔顺达","田野","宫帅龙",
                "高亭","张卓","陈盼盼","杨延欣","李蒙惠","瞿新成","王婧源","刘建豪",
                "彭习峰","胡凯","张武超","李炳杰","刘传","焦泽国");
        //把list作为参数重新构建一个新的ArrayList集合
        ArrayList<String> names=new ArrayList<>(list);
        //使用random生成一个随机
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        while (true) {
            //如果集合没有元素
            if (names.size() == 0) {
                System.out.println("已抽查完");
                break;
            }
            System.out.println("请输入Y 或者 y");
            String input=sc.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;
            }
        }

    }
}

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

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

 

 

ArrayList数组的优缺点 

因为ArrayList底层使用数组实现,所以优缺点与数组类似。

优点:

1、根据下标遍历元素效率较高。

2、根据下标访问元素效率较高。

3、在数组的基础上封装了对元素操作的方法。

4、可以自动扩容。

缺点:

1、插入和删除的效率比较低。

2、根据内容查找元素的效率较低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值