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)


相关推荐

  • hibernate与mybatisplus_Mybatis框架

    hibernate与mybatisplus_Mybatis框架最近做了一个Hibernate与MyBatis的对比总结,希望大家指出不对之处。第一章     Hibernate与MyBatisHibernate 是当前最流行的O/Rmapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/Rmapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:ht

  • 1190. 反转每对括号间的子串(栈|splay)[通俗易懂]

    1190. 反转每对括号间的子串(栈|splay)[通俗易懂]给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:”dcba”示例 2:输入:s = “(u(love)i)”输出:”iloveu”示例 3:输入:s = “(ed(et(oc))el)”输出:”leetcode”示例 4:输入:s = “a(bcdefghijkl(mno)p)q”输出:”apmnolkjihgf

  • 简述SOAP协议「建议收藏」

    简述SOAP协议「建议收藏」8个月过去了,依旧清楚的记得研究生复试时,老师问我SOAP协议是啥(当时还不知道这个协议的名字到底该怎么写),今天偶然之间看见了一篇博客提到了SOAP(见下图),于是就查了一下SOAP协议。SOAP是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。更简单地说:SOAP是用于访问网络服务的协议。什么是SOAP?SOAP指简易对象访问协议SOAP是一种…

  • 让Firefox支持ActiveX控件「建议收藏」

    让Firefox支持ActiveX控件「建议收藏」让Firefox支持ActiveX控件  疑难集锦字号  我现在用Firefox作为主力浏览器,Firefox下能否支持ActiveX插件?所为对某些包含ActiveX控件的网站并不兼容,不知道怎么做能让Firefox支持ActiveX呢?      答:两种方案:一种是使用IETab这个插件,在Firefox下直接调用IE浏览器内核进行浏览;      另一种是使

  • 使用Xtrabackup进行MySQL备份

    使用Xtrabackup进行MySQL备份使用Xtrabackup进行MySQL备份一、安装1、简介Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:(1)备份过程快速、可靠;(2)备份过程不会打断正在执行的事务;(3)能够基于压缩等功能节约磁盘空间和流量;(4)自动实现备份检验;(5)还原速度快;2、安装其最新版的软件可从http://www.percona.com/software/percona-x

  • 破解loadrunner及出现Temporary sentinel stage failed License db stage failed Flag stage failed Version sta

    破解loadrunner及出现Temporary sentinel stage failed License db stage failed Flag stage failed Version sta

发表回复

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

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