前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day07_Scanner类,Random类,ArrayList类

day07_Scanner类,Random类,ArrayList类

作者头像
全栈程序员站长
发布2022-06-29 15:00:42
6230
发布2022-06-29 15:00:42
举报
文章被收录于专栏:全栈程序员必看

Scanner类的功能:可以实现键盘输入数据到程序中 引用类型的一般步骤: 1.导包 import 包路径.类名称; 如果需要使用的目标类,和当前类位于同一个包中,则可以省略导入语句 只有java.lang包下的内容不需要导包,其他的都需要import语句。

2.创建 类名称 对象名 = new 类名称();

3.使用 对象名.成员方法名()

代码语言:javascript
复制
package cn.itcast.day07.demo01;
import java.util.Scanner;

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

public class Demo01Scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);//System.in代表从键盘输入

        int num=sc.nextInt();
        System.out.println("输入的Int数字是:"+num);

        String str=sc.next();
        System.out.println("输入的字符串是:"+str);
    }
}

匿名对象

代码语言:javascript
复制
package cn.itcast.day07.demo02;

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

注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象
使用建议:如果确定一个对象只是用唯一一次,就可以使用匿名对象
 */
public class Demo01Anonymous {
    public static void main(String[] args) {
        Person one = new Person();
        one.name="高圆圆";
        one.showName();
        
        //匿名对象
        new Person().name="赵又廷";
        new Person().showName();//我叫:null
        
    }
}

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

代码语言:javascript
复制
package cn.itcast.day07.demo02;

import java.util.Scanner;

public class Demo02Anonymous {
    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        int num=sc.nextInt();

        //匿名对象的方式
        int num1=new Scanner(System.in).nextInt();
        System.out.println("输入的是"+num1);

        //使用一般方式传参
        Scanner sc=new Scanner(System.in);
        methodParam(sc);

        //使用匿名对象传参
        methodParam(new Scanner(System.in));
    }
    public static void methodParam(Scanner sc){
        int num=sc.nextInt();
        System.out.println("输入的是:"+num);
    }
}
代码语言:javascript
复制
 public static Scanner methodReturn(){
        //一般的返回
//        Scanner sc=new Scanner(System.in);
//       return sc;
       //匿名对象返回
       return new Scanner(System.in);
        
    }

Random类

代码语言:javascript
复制
package cn.itcast.day07.demo03;

import java.util.Random;

/*
Random类用来生成随机数字,使用起来三个步骤
1.导包:
import java.util.Random;

2.创建
Random r=new Random();

3.使用
获取一个随机的Int数字(范围是Int所有范围,有正负两种):int num=r.nextInt();
 */
public class Demo01Random {
    public static void main(String[] args) {
        Random r=new Random();

        int num=r.nextInt();
        System.out.println("随机数是:"+num);
    }
}
代码语言:javascript
复制
package cn.itcast.day07.demo03;

import java.util.Random;
/*
输出一定范围内的随机数
 */
public class Demo02Random {
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 100; i++) {
            int num=r.nextInt(10);//范围是左闭右开0-9
            System.out.println(num);
        }
    }
}
代码语言:javascript
复制
在这里插入代码片
代码语言:javascript
复制
package cn.itcast.day07.demo03;

import java.util.Random;

/*
题目要求:
根据int变量n的值,来获取随机数字,范围是[1,n]

思路:
1.定义一个int变量n,随意赋值
2.要使用Random,三个步骤:导包,创建,使用
3.如果写10,那么就是0-9,然而想要1-10.可以发现,整体加一即可
4.打印随机数字
 */
public class Demo03Random {
    public static void main(String[] args) {
        int n=5;
        Random r=new Random();
        for (int i = 0; i < 100; i++) {
            //本来范围是[0,n),整体+1之后就变成了[1,n+1),也就是[1,n]
            int result=r.nextInt(n)+1;
            System.out.println(result);
        }
       
    }
}
代码语言:javascript
复制
package cn.itcast.day07.demo03;
/*
题目:用代码模拟猜数字的小游戏

思路:
1.首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法
2.需要键盘输入,所以用到了Scanner
3.获取键盘输入的数字,用Scanner中的nextInt方法
4.已经得到了两个数字,判断(if)一下:
   如果太大了,提示太大,并且重试
   如果太小了,提示太小,并且重试
   如果猜中了,游戏结束
5.重试就是再来一次,循环次数不确定,用while(true)
 */

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

public class Demo04 {
    public static void main(String[] args) {
        Random r = new Random();
        int randomNum = r.nextInt(100) + 1;//1-100
        Scanner sc = new Scanner(System.in);
        int i;

        for ( i = 1; i <=3; i++) {

            System.out.println("请输入你猜测的数字");
            int guessNum = sc.nextInt();//alt+回车 选择Local一项,会自动出int i=
            if(i<3){
                if (randomNum < guessNum) {
                    System.out.println("猜的大了,重试");
                } else if (randomNum > guessNum) {
                    System.out.println("猜的小了,重试");
                } else {
                    System.out.println("猜对");
                    break;
                }
            }
            if(i==3&&(randomNum!=guessNum))
                System.out.println("猜错,次数用完");
        }
    }
}

对象数组 题目:定义一个数组,用来存储3个Person对象

数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变

代码语言:javascript
复制
package cn.itcast.day07.demo04;

public class Demo01Array {
    public static void main(String[] args) {
        Person[] array=new Person[3];

        Person one = new Person("迪丽热巴",18);
        Person two = new Person("古力娜扎",28);
        Person three = new Person("马尔扎哈",38);

        //将one当中的地址赋值到数组的0号元素
        array[0]=one;
        array[1]=two;
        array[2]=three;
        System.out.println(array[0].getName());
    }
}

ArrayList

代码语言:javascript
复制
package cn.itcast.day07.demo04;

import java.util.ArrayList;

/*
数组的长度不可以发生变化
但是ArrayList集合的长度是可以随意变化的

对于Arraylist来说,有一个尖括号<E>代表泛型
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型

注意事项:
对于Arraylist集合来说,直接打印得到的不是地址值,而是内容
如果内容是空,得到的是空的中括号:[]
 */
public class Demo02ArrayList {
    public static void main(String[] args) {
        //创建了一个ArrayList集合,集合的名称是List,里面装的全都是String字符串类型
        ArrayList<String> list=new ArrayList<>();
        System.out.println(list);//[]

        //向集合添加数据,需要用add方法
        list.add("赵丽颖");
        System.out.println(list);
    }
}
代码语言:javascript
复制
package cn.itcast.day07.demo04;

import java.util.ArrayList;

/*
ArrayList当中的常用方法有:

public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。
注意:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
但是对于其他集合(今后学习)来说,add添加动作不一定成功。返回值代表添加是否成功。

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<>();

        //向集合中添加元素:add
        boolean success=list.add("柳岩");
        System.out.println(list);
        System.out.println("添加动作是否成功:"+success);

        list.add("高圆圆");
        list.add("赵又廷");
        list.add("李小璐");
        System.out.println(list);//[柳岩, 高圆圆, 赵又廷, 李小璐]

        //从集合中获取元素:get 索引值从0开始
        String name = list.get(2);
        System.out.println("第2号索引位置:"+name);

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

        System.out.println("集合中元素个数为"+list.size());


    }


}
代码语言:javascript
复制
package cn.itcast.day07.demo04;

import java.util.ArrayList;
/*
集合的遍历
 */
public class ArrayListEach {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("迪丽热巴");
        list.add("古力娜扎");
        list.add("马尔扎哈");

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

}
代码语言:javascript
复制
package cn.itcast.day07.demo04;

import java.lang.reflect.Array;
import java.util.ArrayList;

/*
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”

基本类型      包装类(引用类型,包装类都位于java.lang包下)
byte          Byte
short         Short
int           Integer
long          Long
float         Float
double        Double
char         character
boolean       Boolean

从JDK1.5+开始,支持自动装箱、自动拆箱

自动装箱:基本类型——>包装类型
自动拆箱:包装类型——>基本类型
 */
public class Demo05ArrayListBasic {
    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);//[100,200]

        System.out.println(listC.get(1));//200

        int num=listC.remove(1);
        System.out.println(listC);
        System.out.println("被删除的数字是"+num);

    }
}
代码语言:javascript
复制
package cn.itcast.day07.demo05;
import java.util.ArrayList;
import java.util.Random;

/*
题目:生成6个1-33之间的随机整数,添加到集合,并遍历集合。
 */
public class Demo01ArrayListRandom {
    public static void main(String[] args) {
        Random r=new Random();
        ArrayList<Integer> list=new ArrayList<>();
        for (int i = 0; i < 6; i++) {
            int num=r.nextInt(33)+1;
            list.add(num);
        }

        for (int j = 0; j < list.size(); j++) {
            System.out.println(list.get(j));
        }
    }
}
代码语言:javascript
复制
package cn.itcast.day07.demo05;

import java.util.ArrayList;

/*
定义4个学生对象,添加到集合,并遍历
 */
public class Demo02ArrayListStudent {
    public static void main(String[] args) {
        Student one=new Student("张三",18);
        Student two=new Student("李四",19);
        Student three = new Student("王五",20);
        Student four=new Student("空空",21);

        ArrayList<Student> list=new ArrayList<>();
        list.add(one);
        list.add(two);
        list.add(three);
        list.add(four);
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println("姓名:"+stu.getName()+" 年龄:"+stu.getAge());
        }
    }

}
代码语言:javascript
复制
package cn.itcast.day07.demo05;

import java.util.ArrayList;

/*
联系ArrayList类型作为方法参数
定义指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分隔
每个元素。格式参照{元素@元素@元素}。
 */
public class Demo03ArrayListPrint {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<>();
        list.add(2);
        list.add(3);
        list.add(4);
        printList(list);
    }

    public static void printList(ArrayList<Integer> list){
        String str=new String();
        int i;
        for (i = 0; i < list.size()-1; i++) {
            str+=list.get(i)+"@";
        }
        System.out.println("{"+str+list.get(i)+"}");
    }

}
代码语言:javascript
复制
package cn.itcast.day07.demo05;
import java.util.ArrayList;
import java.util.Random;

/*
练习
ArrayList作为返回值
题目:
用一个大集合存入20个随机数字,然后筛选其中的偶数,放到小集合中。
要求使用自定义的方法实现筛选。
 */
public class demo04ArrayListReturn {
    public static void main(String[] args) {
        ArrayList bigList=new ArrayList<>();

        Random r=new Random();
        for (int i = 0; i < 20; i++) {
            int num=r.nextInt(100)+1;
            bigList.add(num);
        }

        for (int i = 0; i < bigList.size(); i++) {
            System.out.println(bigList.get(i));
        }
        System.out.println("========");
        ArrayList<Integer> smallList=getSmallList(bigList);
        for (int i = 0; i < smallList.size(); i++) {
            System.out.println(smallList.get(i));
        }
    }

    public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){
        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < bigList.size(); i++) {
            int num=bigList.get(i);
            if(num%2==0){
                smallList.add(num);
            }
        }
        return smallList;
    }
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100200.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档