Day7-Scanner类、Random类、ArrayList类

第一章 API

API(Application programming Interface),应用程序编程接口。Java API是程序员的字典,是JDK提供给我们使用的类的说明文档。


第二章 Scanner类

功能:实现键盘输入数据到程序当中。
引用类型的一般使用步骤:
  1. 导包
    import 包路径.类名称;
  1. 如果需要使用的目标类,和当前类在同一包内,则可以省略导包语句不写。
  2. 只有java.lang包下的内容不需要导包,其他的包都需要import语句。
  1. 创建
    类名称 对象名 = new 类名();
  2. 使用
    对象名.成员方法名()
简单的小例子
package cn.itcast.day07.demo01;

import java.util.Scanner;

public class Demo01Scanner {
    public static void main(String[] args) {
        Scanner sn = new Scanner(System.in);
        //键盘输入数字
        int num=sn.nextInt();
        System.out.println(num);
        //键盘输入字符串
        String str=sn.next();
        System.out.println(str);

    }
}

练习
  1. 键盘输入两个数,结果输出两个数的和
package cn.itcast.day07.demo01;

import java.util.Scanner;

public class Demo02ScannerSum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数字:");
        int a = sc.nextInt();
        System.out.println("请输入第二个数字:");
        int b = sc.nextInt();
        System.out.println("the result is:" + (a + b));
    }
}

  1. 打印输入的三个int类型变量的最大值
package cn.itcast.day07.demo01;

import java.util.Scanner;

public class Demo03ScannerMax {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int a = sc.nextInt();
        System.out.println("请输入第二个数:");
        int b = sc.nextInt();
        System.out.println("请输入第三个数:");
        int c = sc.nextInt();
        int temp = a > b ? a : b;
        int max = temp > c ? temp : c;
        System.out.println("The Max is:" + max);
    }
}

匿名对象
  1. 定义:new 类名();
  2. 使用
package cn.itcast.day07.demo01.demo02;

public class Demo01Anonymous {
    public static void main(String[] args) {
        new Person().name="hanhan";
    }
}

  1. 匿名对象只能唯一的使用一次,下次使用不得不在创建一个新的对象。

使用建议:如果确定有一个对象只需要使用唯一的一次,则可以使用匿名对象。

  1. 匿名对象作参数和返回值
package cn.itcast.day07.demo01.demo02;

import java.util.Scanner;

public class Demo02Anonymous {
    public static void main(String[] args) {
        methodParame(new Scanner(System.in));
        Scanner sc=methodValue();
        System.out.println("second time:"+sc.nextInt());
    }
    //做参数
    public static void methodParame(Scanner sc){
        int num=sc.nextInt();
        System.out.println("first time:"+num);
    }
    //做返回值
    public static Scanner methodValue(){
        return new Scanner(System.in);
    }
}


第三章 Random类

功能:产生随机数
使用:三步骤
package cn.itcast.day07.demo01.demo03;

import java.util.Random;

public class Demo01Random {
    public static void main(String[] args) {
        Random rd=new Random();
        int num = rd.nextInt();
        System.out.println("范围是int范围:"+num);
        int num1=rd.nextInt(30);
        System.out.println("范围是[0,30):"+num1);
    }
}

练习
  1. 根据int变量n的值,获取随机数字,范围是[1,n]
package cn.itcast.day07.demo01.demo03;

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

public class Demo02Random {
    public static void main(String[] args) {
        System.out.print("Input the the max of random digital:");
        
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        Random rd = new Random();
        int num = rd.nextInt(n) + 1;
        System.out.println(num);
    }
}

  1. 猜数字。猜错了给出提示,知道才正确。其中,平均次数最少的猜法采用折半查找
package cn.itcast.day07.demo01.demo03;

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

public class Demo03Random {
    public static void main(String[] args) {
        Random rd = new Random();
        int num = rd.nextInt(100)+1;
        System.out.println("请输入1-100之间的数字");
        Scanner sc =new Scanner(System.in);
        while(sc.hasNextInt()){
            int input = sc.nextInt();
            if(input == num){
                System.out.println("恭喜你!猜对了");
                break;
            }else if (input > num){
                System.out.println("猜大了!");
            }else{
                System.out.println("猜小了!");
            }
        }
    }
}


第四章 ArrayList类

引述:使用之前的知识定义对象数组,因为数组本身的限制(数组一旦创建,元素个数就固定了),因此引入ArrayList类。
<E>:泛型 - 装在集合中的元素的同一类型,只能是引用类型

定义和使用
  1. 数组长度不可以改变,ArrayList集合的长度可以随意变化。
  2. 对于ArrayList集合来说,直接打印输出的不是地址值,而是内容
    1. 若内容为空,输出时空的中括号([])
package cn.itcast.day07.demo01.demo04;

import java.util.ArrayList;

public class Demo02ArrayList {
    public static void main(String[] args) {
        //从jdk1.7+开始,右侧的尖括号内部可以不写内容
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);//[]

        list.add("hanhan");
        System.out.println(list);//[hanhan]

        list.add("haohao");
        list.add("cheche");
        System.out.println(list);//[hanhan, haohao, cheche]
    }
}

常用方法和遍历
  1. public boolean add(E e):向集合中添加元素

对于ArrayList来说,add方法一定成功,可用可不用。对于其他集合的添加却不一定成功。

  1. public E get(int index):获取集合中的元素,参数时索引值
  2. public E remove(int index):从集合中删除元素,参数时索引值
  3. public int size():获取集合的尺寸长度,返回值就是集合中元素的个数
package cn.itcast.day07.demo01.demo04;

import java.util.ArrayList;
/*
public boolean add(E e):向集合中添加元素
public E get(int index):获取集合中的元素,参数时索引值
public E remove(int index):从集合中删除元素,参数时索引值
public int size():获取集合的尺寸长度,返回值就是集合中元素的个数
*/
public class Demo03ArrayListMethod {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("hanhan");
        list.add("qiqi");
        list.add("heihei");

        System.out.println(list);//[hanhan, qiqi, heihei]
        System.out.println(list.size());//3

        System.out.println(list.get(0));//hanhan
        System.out.println(list.get(2));//heihei

        list.remove(0);
        System.out.println(list);//[qiqi, heihei]

        System.out.println(list.size());//2
        
		for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

如何存储基本数据类型

如果希望向ArrayList集合中保存基本数据类型,必须使用基本类型对应的“包装类”。
从jdk1.5+开始,支持自动装箱和拆箱

  • 自动装箱:基本类型 --> 包装类型
  • 自动拆箱:包装类型 --> 基本类型
基本类型包装类(引用类型,都位于java.lang中)
byteByte
shortShort
intInteger
longLong
doubleDouble
floatFloat
charCharacter
booleanBoolean
练习
  1. 生成6个1-33之间的随机整数,添加到集合,并遍历集合
package cn.itcast.day07.demo01.demo05;

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

public class Demo01Add {
    public static void main(String[] args) {
        Random rd = new Random();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            int num = rd.nextInt(33) + 1;
            list.add(num);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

  1. 自定义4个学生对象,添加到集合,并遍历
package cn.itcast.day07.demo01.demo05;


import java.util.ArrayList;

public class Demo02Student {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        Student[] array = new Student[4];

        for (int i = 0; i < array.length; i++) {
            array[i] = new Student();
        }

        array[0].setId("111");
        array[1].setId("222");
        array[2].setId("333");
        array[3].setId("444");

        array[0].setName("hanhan");
        array[1].setName("ququ");
        array[2].setName("lele");
        array[3].setName("gougou");

        array[0].setAge(12);
        array[1].setAge(25);
        array[2].setAge(45);
        array[3].setAge(78);

        for (int i = 0; i < array.length; i++) {
            list.add(array[i]);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"+list.get(i).getAge());
        }

    }
}

  1. 定义打印集合的方法,将ArrayList集合作为参数,使用{}扩起集合,使用@分隔元素。
package cn.itcast.day07.demo01.demo05;

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

public class Demo03MethodPrint {
    public static void main(String[] args) {
        Random rd = new Random();
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            int num = rd.nextInt(33)+1;
            list.add(num);
        }
        methodPrint(list);
    }
    public static void methodPrint(ArrayList<Integer> list){
        System.out.print("{");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));
            if(i==list.size()-1){
                System.out.print("}");
            }else{
                System.out.print("@");

            }
        }
    }
}

  1. 用一个大集合存储20个随机数字,然后筛选偶数元素,放在小集合中,要求使用自定义方法实现筛选。
package cn.itcast.day07.demo01.demo05;

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

public class Demo04Return {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Random rd = new Random();

        for (int i = 0; i < 20; i++) {
            int num = rd.nextInt(100) + 1;
            list.add(num);
        }
        System.out.println("初始化集合值:");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }

        ArrayList<Integer> newList = methodReturn(list);
        System.out.println("\n筛选后集合值:");
        for (int i = 0; i < newList.size(); i++) {
            System.out.print(newList.get(i) + " ");
        }
    }

    public static ArrayList<Integer> methodReturn(ArrayList<Integer> list) {
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i) % 2 != 0) {
                list.remove(i);
            }
        }
        return list;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值