一、 Scanner类
1. Scanner类的功能:
实现键盘输入数据到程序(和C语言的scanf函数功能类似)
2. 使用步骤:
- 导包:
import java.util.Scanner(写在class之前,包路径查API文档) - 创建:
Scanner sca=new Scanner(System.in);
//System.in表示键盘输入 - 使用:
- 获取键盘输入的int数字:
int num=sca.nextIn();
- 获取键盘输入的字符串:
int num=sca.next();
- 其他不一一列举,详情查看API
二、 Random类
1. Random类:
伪随机数类,生成伪随机数流
2. 使用步骤
- 导包:
import java.util.Random
- 创建:Random r=new Random();
- 使用:
int num=r.nextInt();//随机生成一个int数字,范围就是int类型的范围
int num=r.nextInt(n);//随机生成一个int数字,其范围是[0,n),如n=3,则随机生成0、1、2
更多的看API文档即可
3. 示例:获取随机数字1~n;
package linxu.day02;
import java.util.Random;
import java.util.Scanner;
public class randomdome {
public static void main(String[] args) {
Random ro=new Random();
System.out.print("输入随机数范围:");
int num=new Scanner(System.in).nextInt();
for (int i = 0; i < 10; i++) {
System.out.println(ro.nextInt(num)+1);
}
}
}
一、ArrayList类
1. ArrayList类
数组长度不可以改变,但ArrayList长度可以改变。
ArrayList集合和C语言的容器有异曲同工之妙。
2. 泛型
对于JAVA类来说,类名后面有一个 < E >就表示泛型。
- 泛型:即放在集合中的所有元素,全部统一的是什么类型。
- 泛型只能是引用类型(包括自定义类型的对象),不能是基本类型。
- 对于ArrayList类,直接打印得到的是内容,而非地址。如果内容为空,会得到一对中括号。但是集合中保存的却是地址值,而不是内容;
- 因此< E >只能用引用型,不能用基本数据类型,因为基本数据类型没有地址值
3. ArrayList类的使用
- 导包
import java.util.ArrayList
- 创建:
ArrayList<String> list =new ArrayList<String>();//默认是10的容器大小。从jdk1.7以后,赋值号右边尖括号内部可以空着,默认和左边一样
- 使用
System.out.println(list); //直接打印是空的中括号,默认打印格式是[元素1,元素2,元素3,元素4] list.add("小赵"); //boolean add(E e) 添加元素,返回值是是否添加成功,对于ArrayList来说,一定成功 list.add(100); //错误,因为创建时是String类型。创建时尖括号是什么类型,就只能add什么类型的数据。 list.set(0,"小王"); // E set(int index, E element) 修改index索引位置处的值为element,返回值是此位置原来的值 String str=list.get(0); // E get(int index) 从ArrayList中读取元素值,参数是索引编号 String str=list.remove(0);//E remove(int index) 从ArrayList中删除元素值,参数是索引编号,返回值是删除掉的元素 int n=list.size(); //int size() 获取集合的长度,返回值是集合的元素个数
4. 那如果,想让ArrayList中使用基本数据类型呢?
使用基本数据类型对应的包装类
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
doule | Double |
char | Character |
bool | Boolean |
只要在尖括号写基本数据类型对应的包装类即可,使用时仍然按照基本数据类型使用
ArrayList<Integer> lists=new ArrayList<>();
lists.add(100);
/*其值仍然是int类型,只是尖括号的类型名字变了一下。
因为从jdk1.5开始,支持自动装箱和自动拆箱
自动装箱:基本类型-->包装类型
自动拆箱:包装类型-->基本类型
*/
lists.add(200);
int num=lists.get(0);
5. 示例:大集合存放20个随机数字,选出偶数放入另一个小集合
package linxu.day02;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
public class returnrandom {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random ro = new Random();
for (int i = 0; i < 20; i++) {
list.add(ro.nextInt(30));
}
ArrayList<Integer> list2 = returnOu(list);
System.out.println(list2);
}
public static ArrayList returnOu(ArrayList<Integer> list) {
ArrayList<Integer> listi = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
int num = list.get(i);
if (list.get(i) % 2 == 0) {
listi.add(list.get(i));
}
}
return listi;
}
}