JAVA引用类型(3)——Scanner类、Random类、Arraylist类

一、 Scanner类

1. Scanner类的功能:

实现键盘输入数据到程序(和C语言的scanf函数功能类似)

2. 使用步骤:
  1. 导包:
    import java.util.Scanner(写在class之前,包路径查API文档)
  2. 创建:
    Scanner sca=new Scanner(System.in);
    //System.in表示键盘输入
  3. 使用:
  • 获取键盘输入的int数字:int num=sca.nextIn();
  • 获取键盘输入的字符串:int num=sca.next();
  • 其他不一一列举,详情查看API

二、 Random类

1. Random类:

伪随机数类,生成伪随机数流

2. 使用步骤
  1. 导包:import java.util.Random
  2. 创建:Random r=new Random();
  3. 使用:
    int num=r.nextInt();//随机生成一个int数字,范围就是int类型的范围
    int num=r.nextInt(n);//随机生成一个int数字,其范围是[0,n),如n=3,则随机生成0、1、2
    更多的看API文档即可
3. 示例:获取随机数字1~n;
package linxu.day02;
import java.util.Random;
import java.util.Scanner;
public class randomdome {
    public static void main(String[] args) {
        Random ro=new Random();
        System.out.print("输入随机数范围:");
        int num=new Scanner(System.in).nextInt();
        for (int i = 0; i < 10; i++) {
            System.out.println(ro.nextInt(num)+1);
        }
    }
}

一、ArrayList类

1. ArrayList类

数组长度不可以改变,但ArrayList长度可以改变。
ArrayList集合和C语言的容器有异曲同工之妙。

2. 泛型

对于JAVA类来说,类名后面有一个 < E >就表示泛型。
在这里插入图片描述

  • 泛型:即放在集合中的所有元素,全部统一的是什么类型。
  • 泛型只能是引用类型(包括自定义类型的对象),不能是基本类型。
  • 对于ArrayList类,直接打印得到的是内容,而非地址。如果内容为空,会得到一对中括号。但是集合中保存的却是地址值,而不是内容;
  • 因此< E >只能用引用型,不能用基本数据类型,因为基本数据类型没有地址值
3. ArrayList类的使用
  1. 导包import java.util.ArrayList
  2. 创建:ArrayList<String> list =new ArrayList<String>();//默认是10的容器大小。从jdk1.7以后,赋值号右边尖括号内部可以空着,默认和左边一样
  3. 使用
    System.out.println(list); //直接打印是空的中括号,默认打印格式是[元素1,元素2,元素3,元素4]
    list.add("小赵");         //boolean add(E e)     添加元素,返回值是是否添加成功,对于ArrayList来说,一定成功
    list.add(100);           //错误,因为创建时是String类型。创建时尖括号是什么类型,就只能add什么类型的数据。
    list.set(0,"小王");       // E set(int index, E element)    修改index索引位置处的值为element,返回值是此位置原来的值
    String str=list.get(0);   // E get(int index)    从ArrayList中读取元素值,参数是索引编号
    String str=list.remove(0);//E remove(int index)    从ArrayList中删除元素值,参数是索引编号,返回值是删除掉的元素
    int n=list.size();        //int size()      获取集合的长度,返回值是集合的元素个数
    
4. 那如果,想让ArrayList中使用基本数据类型呢?

使用基本数据类型对应的包装类

基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
douleDouble
charCharacter
boolBoolean

只要在尖括号写基本数据类型对应的包装类即可,使用时仍然按照基本数据类型使用

ArrayList<Integer> lists=new ArrayList<>();
lists.add(100);
/*其值仍然是int类型,只是尖括号的类型名字变了一下。
因为从jdk1.5开始,支持自动装箱和自动拆箱
自动装箱:基本类型-->包装类型
自动拆箱:包装类型-->基本类型
*/
lists.add(200);
int num=lists.get(0);
5. 示例:大集合存放20个随机数字,选出偶数放入另一个小集合
package linxu.day02;

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

public class returnrandom {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Random ro = new Random();
        for (int i = 0; i < 20; i++) {
            list.add(ro.nextInt(30));
        }
        ArrayList<Integer> list2 = returnOu(list);
        System.out.println(list2);

    }

    public static ArrayList returnOu(ArrayList<Integer> list) {
        ArrayList<Integer> listi = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            int num = list.get(i);
            if (list.get(i) % 2 == 0) {
                listi.add(list.get(i));
            }
        }
        return listi;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值