复习-08--Scanner Random Arraylist类

1.API:类和方法的解释 JDK中类的说明文档

注意思考引用类型 和基本数据类型 除了基本的四类八种 其他的都是引用数据类型 其实都是类

2.Scanner:---是一个类 ----引用类型

2.1使用步骤

public class Demo01Scanner {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);  //从键盘输入 还可以从网络输入等
        //获取键盘输入的int数据
        int num = sc.nextInt();
        //获取键盘输入的字符串
        String str = sc.next();
        //还要注意 只要写了两个方法 就要输入两次按两次enter才会执行下面的代码

        System.out.println("输入的数字是"+num);
        System.out.println("输入的字符串是"+str);

    }

2.2scanner练习:

nextInt(); 获取int

next();获取字符串

public class text01 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入数字");
        int num1 = sc.nextInt();
        System.out.println("请输入数字");
        int num2 = sc.nextInt();
        System.out.println("两数的和为"+(num1+num2));
    }
public class text01 {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入数字");
            int num1 = sc.nextInt();
            System.out.println("请输入数字");
            int num2 = sc.nextInt();
            System.out.println("请输入数字");
            int num3 = sc.nextInt();
           int[] arr={num1,num2,num3};
            int max=arr[0];
            for (int i = 1; i < arr.length; i++) {
                if (arr[i]>max){
                    max=arr[i];
                }
            }
            System.out.println("输入的最大值为"+max);
        }

3.匿名对象 --省略起名字的对象

3.1匿名对象只能使用唯一一次 再使用只能再创建   如果确定一个对象只会使用唯一一次就可以使用匿名对象

package 匿名对象;

public class Person {
    String name;
    public void showName(){
        System.out.println("我叫"+name);
    }
}
public class Demo01 {
    public static void main(String[] args) {
        //左边的one就是对象的名字
        Person one=new Person();
        one.name="tt";
        one.showName();
        //匿名对象
        new Person().name="yy";  //new 一次新的对象就创建了
        //但是匿名对象没有对象名 调用showName();方法 不能打印出名字 因为new一次就是一个新对象
        new Person().showName();//我叫null

    }

3.2匿名对象作为方法的参数和返回值----任何数据类型都可以作为方法的参数和返回值

public class Demo02 {
    public static void main(String[] args) {
       /* System.out.println("请输入数字");
        int num = new Scanner(System.in).nextInt();
        System.out.println(num);*/
      
      
       method(new Scanner(System.in));  //注意这里传的是对象


        int num2 = method02().nextInt();
        System.out.println(num2);

    }

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

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

4.Random

nextInt(); 可以获取随机数有正负两种  范围是int的所有范围之内 而且有正负 随机产生一个数

public class Random01 {
    public static void main(String[] args) {
        Random random = new Random();
        int num = random.nextInt();
        System.out.println("随机数是"+num);
    }

4.1生成指定范围的随机数

随机获取一个int数字(参数代表了范围 左闭右开区间 int num=r.nextInt(3))  代表表示【0,3)

public class Random01 {
    public static void main(String[] args) {
        Random random = new Random();
        int num = random.nextInt();
        System.out.println("随机数是"+num);  //范围是int的所有范围之内 而且有正负 随机产生一个数

    //随机获取一个int数字(参数代表了范围 左闭右开区间 int num=r.nextInt(3))  代表表示【0,3)
        int num02 = random.nextInt(3);
        System.out.println("随机数是"+num02);
    }

4.2练习 -生成1到n之间的随机数

public class text01 {
    public static void main(String[] args) {
        int a=10;
        Random r = new Random();
        System.out.println(r.nextInt(a)+1);
    }

4.2 猜数字小游戏

public class test02 {
    public static void main(String[] args) {
        Random r= new Random();
        int num = r.nextInt(100);
        while(true){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入");
            int num02 = sc.nextInt();
            if (num>num02){
                System.out.println("往大的输入");
            }else if (num<num02){
                System.out.println("往小的输入");
            }else{
                System.out.println("猜对啦");
                break;//注意这里的break 否则猜对了也会循环
            }
        }
    }

5.对象数组:这里好好看 注意看

/*
数组一旦创建,数组的长度 数据类型不能改变
 */
public class Demo01Array {
    public static void main(String[] args) {

        Person[] arr = new Person[3];
        System.out.println(arr[0]); //默认值是null
       arr[0]= new Person("tt",20);
       arr[1]=new Person("yy",15);
       arr[2]=new Person("TT",16);
        System.out.println(arr[0]);//random.Person@2d98a335   里面存的是对象的地址
        System.out.println(arr[0].getAge());//20
    }
}

6.ArrayList集合类

/*
ArrayList集合的长度是可以随意变化的
对于ArrayList来说 有一个尖括号<>代表泛型
泛型就是装在集合中的所有元素统一都是一个什么类型的
注意:泛型只能是引用类型不能是基本类型
 */
public class Demo01ArrayList {
    public static void main(String[] args) {
        //创建了一个ArrayList集合 集合名称是list 里面装的是String字符串类型的数据
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list); //【】   对于ArrayList来说直接打印不是地址值 而是内容
        //向集合添加数据用add方法
        list.add("tt");
        list.add("yy");
        System.out.println(list);//[tt,yy]
    }

6.1ArrayList常用方法和遍历

/*
常用方法
public boolean add(E e); 其实是ArrayList类中成员方法
public E get(int index);  index从0开始 返回值是对应位置的元素
public E remove(int index); 从集合中删除元素 参数是索引编号 返回的是被删掉的元素
public E size(); 获取集合的尺寸长度 返回值是集合包含的元素个数
 */
/*
常用方法
public boolean add(E e); 其实是ArrayList类中成员方法
public E get(int index);  index从0开始 返回值是对应位置的元素
public E remove(int index); 从集合中删除元素 参数是索引编号 返回的是被删掉的元素
public E size(); 获取集合的尺寸长度 返回值是集合包含的元素个数
 */
public class Demo02ArrayList {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);//[]
        boolean tt = list.add("tt");
        System.out.println(list);//[tt]
        System.out.println(tt); //true  对于ArrayList集合来说 add添加方法一定成功 其他的集合添加有可能不成功
       list.add("yy");
       list.add("ii");
        String list1 = list.get(1);
        System.out.println(list1); //yy
        System.out.println(list);//[tt, yy, ii]
        String remove = list.remove(0);
        System.out.println(remove);//tt
        System.out.println(list);//[yy, ii]
        System.out.println("集合的长度为"+list.size());//集合的长度为2

        //遍历list集合
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));   //yy //ii
        }
        //增强for   iter
        for (String s : list) {
            System.out.println(s);  
        }
    }

6.2ArrayList存储基本数据类型

因为之前说了ArrayList集合只能存储引用数据类型 比如String这种  呢如何存储基本数据类型呢?

byte short int long  flloat double char boolen

泛型只能是引用类型 因为集合保存的都是地址值 基本数据类型没有地址值

如果想往集合中存储基本数据类型需要借助包装类

 

 6.3集合练习

ArrayList存储随机数

public class test01 {
    public static void main(String[] args) {
        Random r= new Random();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            int num = r.nextInt(33)+1;
            list.add(num);
        }
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }
}

存储自定义对象

 注意集合中存储的是地址值

public class Demo01Student {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        list.add(new Student("TT",18));
        list.add(new Student("YY",20));
        list.add(new Student("II",21));
        for (Student student : list) {
            System.out.println(student.getName()+student.getAge()); //注意这里因为集合中存储的是地址值
        }
    }
}

public class test03 {
    public static void main(String[] args) {
        ArrayList<Integer> list_int = new ArrayList<>();
        list_int.add(10);
        list_int.add(20);
        list_int.add(30);
        System.out.print("[");   //注意print
        for (int i = 0; i < list_int.size(); i++) {
            if (i<list_int.size()-1){
                System.out.print(list_int.get(i)+"@");
            }else{
                System.out.print(list_int.get(i));
            }
        }
        System.out.print("]");
    }
}

 

public class test04 {
    public static void main(String[] args) {
        ArrayList<Integer> list_big = new ArrayList<>();
        ArrayList<Integer> list_small = new ArrayList<>();
        Random r= new Random();
        for (int i = 0; i < 20; i++) {
            list_big.add(r.nextInt());
        }
        System.out.println(list_big);
        for (Integer num : list_big) {
            if (num%2==0){
                list_small.add(num);
            }
        }
        System.out.println(list_small);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值