day07_Scanner类,Random类,ArrayList类

day07_Scanner类,Random类,ArrayList类

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

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

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

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

匿名对象

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
        
    }
}

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

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

 public static Scanner methodReturn(){
        //一般的返回
//        Scanner sc=new Scanner(System.in);
//       return sc;
       //匿名对象返回
       return new Scanner(System.in);
        
    }

Random类

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

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

在这里插入代码片
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);
        }
       
    }
}

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对象

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

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

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

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


    }


}

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

}

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

    }
}

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

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

}

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)+"}");
    }

}

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;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SenticNet情感词典介绍[通俗易懂]

    SenticNet情感词典介绍[通俗易懂]在进行情感分析时,一个好的情感词典能够让我们的工作事半功倍,较为出名的情感词典有SentiWordNet,GeneralInquirer等,这篇博客将介绍另外一个出色情感词典,SenticNet。简介当谈论SenticNet时,我们正在谈论概念层面的情感分析,即通过语义和语言学来完成极性探测、情感识别等任务,而不是单纯的依靠词共现频率。SenticNet可以看作是以下其中一种:1…

  • 前嗅ForeSpider教程:抽取数据

    前嗅ForeSpider教程:抽取数据

  • idea设置默认maven路径_idea查看maven路径

    idea设置默认maven路径_idea查看maven路径在idea中每次创建maven都要调整位置是不是很烦~可以通过一下方式设置maven默认配置不仅仅对maven有效,其他默认属性同样管用方法介绍:File->OtherSettings->SettingsforNewProject①②开始设置…

  • 软件测试流程及规范[通俗易懂]

    软件测试流程及规范[通俗易懂]注:非通用标准流程,仅为大家提供参考。目标制定完整且具体的测试路线和流程,为快速、高效和高质量的软件测试提供基础流程框架。最终目标是实现软件测试规范化、标准化。测试流程说明流程图需求分析需求分析由SA制定,要求细化每一个功能的细节,每一个按钮的位置以及边界范围,对于稍大或稍复杂需求要求建模。(1)测试需求是制订测试计划的基本依据,只有确定了的测试需求才能够为测试计划提供客观依据;(2)测

  • 鼠标双击响应的实现「建议收藏」

    鼠标双击响应的实现「建议收藏」今天在实现鼠标双击响应的时候,遇到了一些问题,下面是对我很有帮助的解释:首先对鼠标双击事件原理做一个简单的了解:在Windows平台上,鼠标左键的按下、松开、快速的两次点击会产生WM_LBUTTONDOWN、WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两次鼠标按键操作,是两次独立的单击,还是一次双击呢?最近在解决一个问题时,通过使用…

  • canoe入门教程_canoe编程

    canoe入门教程_canoe编程转自:https://www.cnblogs.com/fengliu-/p/7844072.htmlCANOE入门(一)CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。硬件我使用的是CANcaseXL.1,CANoe软件的安装很简单,先装驱动,再装软件。安装完成,插上USB,连接硬件,这样在控制面板中,…

    2022年10月29日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号