Java自学—— 常见类(Scanner类,Random类,ArrayList类)

Java自学

Scanner类,Random类,ArrayList类

在这里插入图片描述

Scanner类

概念

一个可以解析基本类型和字符串的简单文本扫描器。

引用类型使用步

  1. 导包
    import 包名.类名;
import java.util.Scanner;
  1. 创建对象
    数据类型 变量名 = new 数据类型(参数列表);
        Scanner sc=new Scanner(System.in);
  1. 输入数据
      system.out.println("输入数据")
  1. 调用方法
    变量名.方法名();
	    int i=sc.nextInt(); // 接收一个键盘录入的整数

scanner使用步骤

  • 查看类
    java.util.Scanner :该类需要import导入后使用。

  • 查看构造方法
    public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。

  • 查看成员方法
    public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。

public class Demo02{
import java.util.Scanner;//第一步
public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);//第二步
		System.out.println("1");
	    int i=sc.nextInt(); //第三步
	    System.out.println(i);
	}
}
  • 匿名对象(了解)
			//new 类名(参数列表);
			new Scanner(System.in);
或者    new Scanner(System.in).nextInt();

一个匿名对象,只能使用一次。
作为参数

public static void main(String[] args) {
		//普通方式
		Scanner sc =new Scanner(System.in);
		input(sc);
		//匿名对象作为接收方法的参数
		input(new Scanner( System.in));
	}
	    
	public static void input(Scanner sc) {
		System.out.println(sc);
		
	}

作为返回值

class Test2 {
public static void main(String[] args) {
// 普通方式
Scanner sc = getScanner();
}
public static Scanner getScanner(){
//普通方式
//Scanner sc = new Scanner(System.in);
//return sc;
//匿名对象作为方法返回值
return new Scanner(System.in);
}
}

写到这胳膊疼,读英语去了匿名对象此处存疑

练习

  • 求和
public class Demo02{
import java.util.Scanner;//第一步
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();
		int sum=a+b;
		System.out.println(sum);
		}
	}

结果:输入第一个数据
1
输入第二个数据
1
2

  • 取最值
    (三个数)
public class Demo02{
import java.util.Scanner;//第一步
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 t=(a>b?a:b);
		int m=(t>c?t:c);
		System.out.println(m);
		
	}
}

输出结果:输入第一个数据
1
输入第二个数据
2
输入第三个数据
3
3

Random类

此类的实例用于生成伪随机数。

random使用步骤

  • 查看类
    java.util.Random :该类需要 import导入使后使用。
import java.util.Random;
  • 查看构造方法
    public Random() :创建一个新的随机数生成器。
	Random r = new Random();
  • 查看成员方法
    public int nextInt(int n) :返回一个伪随机数,范围在 0 (包括)和指定值 n (不包括)之间的int 值。
int i=r.nextInt();

例:输出三个一百以内的整数

import java.util.Random;
public class Demo02 {
public static void main(String[] args) {
		Random r = new Random();
		for(int i=0;i<3;i++) {
			int number=r.nextInt(100);
			System.out.println(number);
			}
		}
	}

输出结果:96
21
78

练习

  • 获取随机数
  • 获取1-n之间 的随机数
import java.util.Scanner;
import java.util.Random;
public class Demo02 {
public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("输入n的值");
		int n=sc.nextInt();
		Random r= new Random();
		for(int i=0;i<n;i++) {
			int number =r.nextInt(n)+1;
			System.out.println(number);
		}
	}
}

输出结果:输入n的值
3
2
1
1

  • 猜数字小游戏
  • // 游戏开始时,会随机生成一个1-100之间的整数number 。玩家猜测一个数字guessNumber ,会与number 作比
    // 较,系统提示大了或者小了,直到玩家猜中,游戏结束。
	public static void main(String[] args) {
		Random r=new Random();
		int number=r.nextInt(100)+1;
		
		for(int i=0;i<1;i++) {
		Scanner sc=new Scanner(System.in);
		System.out.println("猜测一个数:");
		int guessName=sc.nextInt();
			
		if(number>guessName) {
			System.out.println("小了");
		}
		else if(number<guessName) {
			System.out.println("大了");
		}else
			System.out.println("相等");
		}

while(true){ }break;也可以,代码问题在于只能输入一次
比如输出结果:
猜测一个数:
20
小了
再次猜测就不行了,此处需要改进

ArrayList类

  • 为适应数据变化的需求,Java提供了另一个容器java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据。
  • java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储
    的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

ArrayList使用步骤

  • 查看类
    java.util.ArrayList <E>:该类需要 import导入使后使用。
    <E>,表示一种指定的数据类型,叫做泛型。E ,取自Element(元素)的首字母。在出现E 的地方,我们使
    用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。
    import java.util.ArrayList;
    ArrayList<String>;
	ArrayList<Student>;
  • 查看构造方法
    public ArrayList() :构造一个内容为空的集合。
	ArrayList<String> list=new ArrayList<String> ();
	//JDK7以后可以如下这样写
	ArrayList<String> list=new ArrayList<> ();
  • 查看成员方法
    public boolean add(E e): 将指定的元素添加到此集合的尾部。
    参数 E e,在构造ArrayList对象时, 指定了什么数据类型,那么add(E e) 方法中,只能添加什么数据
    类型的对象。
import java.util.ArrayList;
public static void main(String[] args) {
		ArrayList<String> list=new ArrayList<>();
		String a="张三";
		String b="李四";
		String c="王五";
		System.out.println(list);
		list.add(a);
		list.add(b);
		list.add(c);
		System.out.println(list);
	}

常用方法和遍历

  • public boolean add(E e) :将指定的元素添加到此集合的尾部。
  • public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
  • public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
  • public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
import java.util.ArrayList;
public static void main(String[] args) {
		ArrayList<String> list=new ArrayList<>();
		//	public boolean add(E e) :将指定的元素添加到此集合的尾部。
		list.add("张三");
		list.add("李四");
		list.add("王五");
		System.out.println(list);
		//	public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
		System.out.println(list.get(0));
		System.out.println(list.get(1));
		System.out.println(list.get(2));
		 //	public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。	
		System.out.println(list.size());
		//	public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。	
		System.out.println(list.remove(0));
		//遍历输出
		for(int i=0;i<list.size();i++) {
			System.out.println(list.get(i));
		}      
	}

输出结果:
[张三, 李四, 王五]
张三
李四
王五
3
张三
李四
王五

如何存储基本数据类型

ArrayList对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写。

基本类型基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

只有Integer 和Character 需要特殊记忆,其他首字母大写即可。

public static void main(String[] args) {
		ArrayList<Integer> list=new ArrayList<>();
		list.add(0);
		list.add(1);
		list.add(2);
		System.out.println(list);
		ArrayList<Character> list1=new ArrayList<>();
		list1.add('e');
		list1.add('f');
		list1.add('g');
		System.out.println(list1);		
	}

练习

  • 数值添加到集合
  //	1-10以内输出三个整数
	public static void main(String[] args) {
		Random r=new Random();
		ArrayList<Integer> list=new ArrayList<>();
		//添加随机数到集合
		for(int i=0;i<3;i++) {
			int number=r.nextInt(10)+1;
			list.add(number);
		}
		//遍历集合输出
		for(int m=0;m<list.size();m++) {
			System.out.println(list.get(m));
		}
	}

输出结果:9
8
5

  • 对象添加到集合
public static void main(String[] args) {
		ArrayList<Student> list=new ArrayList<>();
		Student s1=new Student("张三",1);
		Student s2=new Student("李四",2);
    	Student s3=new Student("王五",3);
    	//添加到集合中
    	list.add(s1);
    	list.add(s2);
    	list.add(s3);
    	//遍历输出
    	for(int i=0;i<list.size();i++) {
    		Student s=list.get(i);
    		System.out.println(s.getName()+s.getAge());
    	}

没有结果,怎么改Student类都不行,存疑

  • 打印集合方法
public static void main(String[] args) {
		// 创建集合对象
		ArrayList<String> list = new ArrayList<String>();
		// 添加字符串到集合中
		list.add("张三丰");
		list.add("宋远桥");
		list.add("张无忌");
		list.add("殷梨亭");
		// 调用方法
		printArrayList(list);
		}
		public static void printArrayList(ArrayList<String> list) {
		// 遍历集合
		for (int i = 0; i < list.size(); i++) {
		// 获取元素
		String s = list.get(i);
		System.out.println(s);
		}
	}

这四人名字

  • 获取集合方法
    定义获取所有偶数元素集合的方法(ArrayList类型作为返回值)
public static void main(String[] args) {
		// 创建Random 对象
		Random random = new Random();
		// 创建ArrayList 对象
		ArrayList<Integer> list = new ArrayList<>();
		// 添加随机数到集合
		for (int i = 0; i < 20; i++) {
		int r = random.nextInt(1000) + 1;
		list.add(r);
		}
		// 调用偶数集合的方法
		ArrayList<Integer> arrayList = getArrayList(list);
		System.out.println(arrayList);
		}
		public static ArrayList<Integer> getArrayList(ArrayList<Integer> list) {
		// 创建小集合,来保存偶数
		ArrayList<Integer> smallList = new ArrayList<>();
		// 遍历list
		for (int i = 0; i < list.size(); i++) {
		// 获取元素
			Integer num = list.get(i);
			// 判断为偶数,添加到小集合中
			if (num % 2 == 0){
			smallList.add(num);
			}
			}
			// 返回小集合
			return smallList;
			}
    	

笔者累了,学英语,偶数这一段存疑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值