Java学习6-API+Scanner+匿名对象+Random+对象数组+Arraylist集合

1. API概述和使用步骤

Application Programming Interface,应用程序编程接口

 

 主要看三点:包路径、构造方法摘要、方法摘要

String类在java.lang包下

2. Scanner

2.1 Scanner基本使用

盘输入类;

导包语句在package下面,public class上面写。

package Demo05;

// 1.导包
import java.util.Scanner;

/*
使用方法:
获取键盘输入的一个int数字:int num = sc.nextInt();
获取键盘输入的一个字符串:String str = sc.next();
 */

public class Demo01Scanner {
    public static void main(String[] args) {
        // 2.创建Scanner类
        // 备注:System.in代表从键盘进行输入
        Scanner sc = new Scanner(System.in);

        // 3.获取键盘输入的int数字
        int num = sc.nextInt();
        System.out.println("输入的int数字是:" + num);

        // 4.获取键盘输入的字符串
        String str = sc.next();
        System.out.println("输入的字符串是:" + str);
    }
}

 

 2.2 键盘输入两个数字求和

package Demo05;

import java.util.Scanner;

public class Demo02ScannerSum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第1个整数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第2个整数:");
        int num2 = sc.nextInt();
        System.out.println("求和结果是:" + (num1 + num2));
    }
}

 

2.3 键盘输入的三个数字的最大值

package Demo05;

import java.util.Scanner;

public class Demo03SannerMax {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第1个整数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第2个整数:");
        int num2 = sc.nextInt();
        System.out.println("请输入第3个整数:");
        int num3 = sc.nextInt();

        int max = num3 > (num1 > num2 ? num1 : num2) ? num3 : (num1 > num2 ? num1 : num2);
        System.out.println("最大的数是:" + max);
    }
}

 

3. 匿名对象

3.1 匿名对象介绍

package Demo06;

/*
创建对象的标准格式:
类名称 对象名 = new 类名称();

匿名对象就是只有右边的对象,没有左边的名字和赋值运算符:
new 类名称();

注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
 */

public class Demo01Annoymous {
    public static void main(String[] args) {
        Person one = new Person();
        one.name = "哈哈哈";
        one.showName();
        System.out.println("================");

        // 匿名对象
        new Person().name = "嘿嘿嘿";
        new Person().showName(); // 我叫:null
    }
}

 

 3.2 匿名对象作为方法的参数和返回值

ALT + ENTER可以直接设置一个变量: 

package Demo06;

import java.sql.SQLOutput;
import java.util.Scanner;

public class Demo02Annoymous {
    public static void main(String[] args) {
        // 普通使用方式
//        Scanner sc = new Scanner(System.in);
//        int num1 = sc.nextInt();
//
//        //匿名对象方式
//        int num2 = new Scanner(System.in).nextInt();
//        System.out.println("输入的是:" + num2);

        // 使用匿名对象来进行传参
        methodParam(new Scanner(System.in));

        // 使用匿名对象作为返回值
        Scanner sc = methodReturn();
        System.out.println("请输入一个整数:");
        System.out.println("输入的是:" + sc.nextInt());
    }

    public static void methodParam(Scanner sc){
        System.out.println("请输入一个整数:");
        int num = sc.nextInt();
        System.out.println("输入的是:" + num);
    }
    public static Scanner methodReturn(){
//        Scanner sc = new Scanner(System.in);
//        return sc;
        return new Scanner(System.in);
    }
}

 

4. Random

4.1 Random概述和基本使用

用来产生随机数字

package Demo07;

import java.util.Random;

public class Demo01Random {
    public static void main(String[] args) {
        Random r = new Random();

        int num = r.nextInt();
        System.out.println("随机数是:" + num);
    }
}

 

 4.2 Random生成指定范围内的随机数

package Demo07;

import java.util.Random;

public class Demo02Random {
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 5; i++) {
            // 范围实际上是0-4
            int num = r.nextInt(5);
            System.out.println(num);
        }
    }
}

 

4.3 生成1-n 之间的随机数

4.4 猜数字小游戏

 

package Demo07;

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

public class RandomGame {
    public static void main(String[] args) {
        Random r = new Random();
        int randomNum = r.nextInt(100) + 1;
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("请输入你猜测的数字:");
            int guessNum = sc.nextInt();
            if (guessNum < randomNum){
                System.out.println("猜小了,请重试!");
            } else if (guessNum > randomNum){
                System.out.println("猜大了,请重试!");
            } else {
                System.out.println("恭喜你,猜中啦!");
                break;
            }
        }
    }
}

5. 对象数组

package Demo08;
/*
题目:
定义一个数组,用来存储3个Person对象
数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变
 */
public class Demo01Array {
    public static void main(String[] args) {
        Person[] array = new Person[3];
        Person one = new Person("哈哈哈",10);
        Person two = new Person("嘿嘿嘿",20);
        Person three = new Person("呵呵呵",30);
        array[0] = one;
        array[1] = two;
        array[2] = three;
        System.out.println(array[0]); // 输出地址值
        System.out.println(array[1]); // 输出地址值
        System.out.println(array[2]); // 输出地址值

        System.out.println(array[1].getName());
    }
}

 Demo08.Person@75412c2f
Demo08.Person@282ba1e
Demo08.Person@13b6d03
嘿嘿嘿

Process finished with exit code 0

6. Arraylist集合

6.1 Arraylist概述和基本使用

 

package Demo08;

import java.util.ArrayList;

public class Demo02ArrayList {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list); // []
        // 向集合添加一些数据
        list.add("哈哈哈");
        System.out.println(list); // [哈哈哈]
        list.add("嘿嘿嘿");
        list.add("呵呵呵");
        list.add("吼吼吼");
        System.out.println(list); // [哈哈哈, 嘿嘿嘿, 呵呵呵, 吼吼吼]
    }
}

[]
[哈哈哈]
[哈哈哈, 嘿嘿嘿, 呵呵呵, 吼吼吼]

Process finished with exit code 0

 6.2 Arraylist常用方法和遍历

 

package Demo08;

import java.util.ArrayList;

public class Demo03ArrayMethod {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list); // []

        // 向集合中添加元素:add
        boolean success = list.add("hhh");
        System.out.println(list);
        System.out.println("添加的动作是否成功:" + success);
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list); // [hhh, aaa, bbb, ccc, ddd]

        // 从集合中删除元素:remove。索引值从0开始。
        String whoRemoved = list.remove(2);
        System.out.println("被删除的是:" + whoRemoved); // bbb
        System.out.println(list);

        // 获取集合的长度尺寸,也就是其中的元素个数
        int size = list.size();
        System.out.println("集合的长度是:" + size);

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

[]
[hhh]
添加的动作是否成功:true
[hhh, aaa, bbb, ccc, ddd]
被删除的是:bbb
[hhh, aaa, ccc, ddd]
集合的长度是:4
hhh
aaa
ccc
ddd

Process finished with exit code 0

 6.3 ArrayList集合存储基本数据类型

泛型必须是引用类型,不能是基本类型

 

package Demo08;

import java.util.ArrayList;

public class Demo04ArrayListBasic {
    public static void main(String[] args) {
        ArrayList<String> listA = new ArrayList<>();
//        // 错误写法,泛型只能是引用类型,不能是基本类型
//        ArrayList<int> listB = new ArrayList<int>();
        ArrayList<Integer> listC = new ArrayList<>();
        listC.add(100);
        listC.add(200);
        System.out.println(listC);
        int num = listC.get(1);
        System.out.println("第1号元素是:" + num);
    }
}

[100, 200]
第1号元素是:200

Process finished with exit code 0

 6.4 ArrayList练习1 - 存储随机数字

package Demo08;

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

public class Demo05ArrayListRandom {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            list.add(r.nextInt(33) + 1);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println("list 第" + i + "号元素是:" + list.get(i));
        }
    }
}

 list 第0号元素是:22
list 第1号元素是:15
list 第2号元素是:9
list 第3号元素是:33
list 第4号元素是:20
list 第5号元素是:8

Process finished with exit code 0

6.5 ArrayList练习2 - 存储自定义对象

 

 

package Demo08;

import java.util.ArrayList;

public class ArrayListStudemt {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        Student one = new Student("aaa",18);
        Student two = new Student("bbb",19);
        Student three = new Student("ccc",17);
        Student four = new Student("ddd",20);
        list.add(one);
        list.add(two);
        list.add(three);
        list.add(four);
        for (int i = 0; i < list.size(); i++) {
//            System.out.println(list.get(i)); // 输出地址
            System.out.println("姓名:" + list.get(i).getName() + ",年龄:" + list.get(i).getAge());
        }
    }

}

 姓名:aaa,年龄:18
姓名:bbb,年龄:19
姓名:ccc,年龄:17
姓名:ddd,年龄:20

Process finished with exit code 0

6.6 ArrayList练习3 - 按指定格式遍历集合字符串

package Demo08;

import java.util.ArrayList;

/*
题目:定义指定格式打印集合的方法(ArrayList类型作为参数),使用()括起集合,使用@分隔每个元素。
格式参照(元素@元素@元素)
ArrayList集合作为方法参数
 */
public class Demo06ArrayListPrint {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        System.out.println("普通打印list集合:");
        System.out.println(list);
        System.out.println("特殊格式打印List集合:");
        listPrint(list);

    }
    public static void listPrint(ArrayList<String> list){
        System.out.print("{");
        for (int i = 0; i < list.size(); i++) {
            if (i != list.size() - 1){
                System.out.print(list.get(i) + "@");
            }else {
                System.out.println(list.get(i) + "}");
            }
        }
    }
}

 普通打印list集合:
[aaa, bbb, ccc]
特殊格式打印List集合:
{aaa@bbb@ccc}

Process finished with exit code 0

​​​​​​​6.7 ArrayList练习4 - 筛选集合中的随机数

 

package Demo08;

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

/*
ArrayList集合方法返回值
 */

public class Demo07ArrayListReturn {
    public static void main(String[] args) {
        ArrayList<Integer> bigList = new ArrayList<>();
        ArrayList<Integer> smallList = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 20; i++) {
            bigList.add(r.nextInt(20) + 1);
        }
        System.out.println("大集合元素:" + bigList);
        smallList = returnSmallList(bigList);
        System.out.println("小集合元素:" + smallList);
        System.out.println("偶数元素个数:" + smallList.size());
    }
    public static ArrayList<Integer> returnSmallList(ArrayList<Integer> bigList){
        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < bigList.size(); i++) {
            if (bigList.get(i) % 2 == 0){
                smallList.add(bigList.get(i));
            }
        }
        return smallList;
    }
}

大集合元素:[18, 13, 1, 2, 14, 10, 5, 2, 18, 10, 19, 10, 9, 6, 11, 18, 8, 19, 12, 13]
小集合元素:[18, 2, 14, 10, 2, 18, 10, 10, 6, 18, 8, 12]
偶数元素个数:12

Process finished with exit code 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的代码小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值