常用API - Scanner、Random、ArrayList
API
概述
API(Application Programming Interface),应用程序编程接口。
Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文档。
这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
离线API文档下载 提取码:uitw
API 使用步骤
- 打开帮助文档。
- 点击显示,找到索引,看到输入框。
- 你要找谁?在输入框里输入,然后回车。
- 看包。java.lang下的类不需要导包,其他需要。
- 看类的解释和说明。
- 学习构造方法。
引用类型使用步骤
- 导包
- 创建对象
- 调用方法
匿名对象
创建对象的标准格式
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符
new 类名称();
new 类名称().属性;
new 类名称().方法;
匿名对象只能使用唯一的一次!!
- 可以当实参传给方法
- 也可以作为返回值
Scanner类
Scanner类在基础语法发过了,传送门
Random类
概述
此类的实例用于生成伪随机数流。
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
Random 类实现的算法使用一个 protected 实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。
很多应用程序会发现 Math.random() 方法更易于使用。
构造方法
| 构造方法 | 说明 |
|---|---|
| Random() | 创建一个新的随机数生成器。 |
| Random(long seed) | 使用单个 long 种子创建一个新的随机数生成器。 |
常用方法
| 方法摘要 | 描述 |
|---|---|
| protected int next(int bits) | 生成下一个伪随机数。 |
| int nextInt() | 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 |
| int nextInt(int n) | 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。 |
| long nextLong() | 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。 |
| float nextFloat() | 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。 |
| double nextDouble() | 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 |
| boolean nextBoolean() | 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。 |
| void setSeed(long seed) | 使用单个 long 种子设置此随机数生成器的种子。 |
| double nextGaussian() | 返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。 |
| void nextBytes(byte[] bytes) | 生成随机字节并将其置于用户提供的 byte 数组中。 |
基本使用
导包
import java.util.Random
创建对象
Random r = new Random();
使用
r.nextInt();
简单使用
package com;
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
public static void main(String[] args) {
// base();
// bound();
// exercise1();
exercise2();
}
public static void base() {
Random r = new Random();
int i = r.nextInt();
// 不带参数将产生整数范围内的随机数 (正负21亿多)
System.out.println(i);
}
public static void bound() {
Random r = new Random();
int i = r.nextInt(10);
// 带参数将产生[0,10) 即0~9的随机数
System.out.println(i);
}
public static void exercise1() {
// 生成1-n 的随机数
Random r = new Random();
// 0~9的随机数整体+1 就成了1~10
int i = r.nextInt(10) + 1;
System.out.println(i);
}
public static void exercise2() {
// 猜大小
Scanner sc = new Scanner(System.in);
Random r = new Random();
// 范围0-100
int target = r.nextInt(101);
int num = -1;
// System.out.println("答案"+target);
do {
System.out.print("请输入一个数:");
num = sc.nextInt();
if (num > target) {
System.out.println("太大了");
} else if (num < target) {
System.out.println("太小了");
} else {
System.out.println("猜对了!");
}
} while (num != target);
}
}
ArrayList类
之前学习数组时,发现一个缺点!
数组一旦创建,就无法改变数组的长度。
概述
java.util.ArrayList 是大小可变的数组的实现
对于ArrayList来说,有一个尖括号代表泛型,泛型就是装在集合中的所有元素,必须是同一种类型。
注意:泛型只能是引用类型,不能是基本类型
构造方法
| 构造方法 | 说明 |
|---|---|
| ArrayList() | 构造一个初始容量为 10 的空列表。 |
| ArrayList(Collection <? extends E> c) | 构造一个包含指定 collection 的元素的列表, 这些元素是按照该 collection 的迭代器返回它们的顺序排列的。 |
| ArrayList(int initialCapacity) | 构造一个具有指定初始容量的空列表 |
常用方法
| 方法摘要 | 描述 |
|---|---|
| int size() | 返回此列表中的元素数。 |
| boolean add(E e) | 将指定的元素添加到此列表的尾部 |
| void add(int index, E element) | 将指定的元素插入此列表中的指定位置 |
| E remove(int index) | 移除此列表中指定位置上的元素。 |
| boolean remove(Object o) | 移除此列表中首次出现的指定元素(如果存在)。 |
| void clear() | 移除此列表中的所有元素。 |
| E get(int index) | 返回此列表中指定位置上的元素。 |
| boolean contains(Object o) | 如果此列表中包含指定的元素,则返回 true。 |
| int indexOf(Object o) | 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。 |
| int lastIndexOf(Object o) | 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1 |
| Object clone() | 返回此 ArrayList 实例的浅表副本。 |
| boolean isEmpty() | 如果此列表中没有元素,则返回 true |
| boolean addAll(Collection<? extends E> c) | 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。 |
| boolean addAll(int index, Collection<? extends E> c) | 从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。 |
| void ensureCapacity(int minCapacity) | 如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。 |
| protected void removeRange(int fromIndex, int toIndex) | 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 |
| E set(int index, E element) | 用指定的元素替代此列表中指定位置上的元素。 |
| Object[] toArray() | 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。 |
<T> T[] toArray(T[] a) |
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。 |
| void trimToSize() | 将此 ArrayList 实例的容量调整为列表的当前大小 |
注意事项
- 养成面向接口编程的思维,ArrayList是List的实现类,即可以写成
List list = new ArrayList();
父类引用指向子类对象,便于后期维护。可参考面向对象知识的多态

如果使用
<E>泛型,不能指定八大基本数据类型,而是指定它们对应的封装类基本类型 封装类 int Integer char Character byte Byte short Short long Long float Float double Double boolean Boolean
练习
生成6个1-33的随机数,添加到集合,并遍历集合
package com; import java.util.ArrayList;
import java.util.List;
import java.util.Random; public class ArrayListExercise {
public static void main(String[] args) { exercise1(); } public static void exercise1() {
List<Integer> list = new ArrayList<>();
Random r = new Random();
final int N = 6;
for (int i = 0; i < N; i++) {
int num = r.nextInt(33) + 1;
list.add(num);
} for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + "\t");
}
System.out.println();
for (Integer i : list) {
System.out.print(i + "\t");
}
}
}自定义4个学生对象,添加到集合,并遍历集合
package com; public class Person {
private String name;
private int age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public Person() {
} public Person(String name, int age) {
this.name = name;
this.age = age;
}
}package com; import java.util.ArrayList;
import java.util.List;
import java.util.Random; public class ArrayListExercise {
public static void main(String[] args) {
exercise2(); } public static void exercise2() {
List<Person> list = new ArrayList<>();
list.add(new Person("小明", 5));
list.add(new Person("小红", 6));
list.add(new Person("小王", 7));
list.add(new Person("小丽", 8));
for (Person person : list) {
System.out.println("名字:"+person.getName() + " 年龄:"+person.getAge());
}
} }自定义格式打印集合的方法,传参ArrayList,打印: {元素1@元素2@...@元素n}
package com; import java.util.ArrayList;
import java.util.List;
import java.util.Random; public class ArrayListExercise {
public static void main(String[] args) {
exercise3(); } public static void exercise3() {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
display((ArrayList) list);
} public static void display(ArrayList list) {
for (int i = 0; i < list.size(); i++) {
if (i == 0) {
System.out.print("{"+list.get(i)+"@");
} else if (i == list.size()-1) {
System.out.print(list.get(i) + "}");
} else {
System.out.print(list.get(i) + "@");
}
}
} }用一个大集合存入20个随机数,然后筛选其中的偶数元素,存入小集合中,要求自定义方法筛选。
package com; import java.util.ArrayList;
import java.util.List;
import java.util.Random; public class ArrayListExercise {
public static void main(String[] args) {
exercise4(); }
public static void exercise4() {
List<Integer> list = new ArrayList<>();
Random r = new Random();
final int N = 20;
for (int i = 0; i < N; i++) {
int num = r.nextInt(100) + 1;
list.add(num);
} for (Integer i : list) {
System.out.print(i + "\t");
} List<Integer> small = filter(list);
System.out.println();
for (Integer i : small) {
System.out.print(i + "\t");
}
} public static List<Integer> filter(List<Integer> list) {
List<Integer> result = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 == 0) {
result.add(list.get(i));
}
}
return result;
}
}
常用API - Scanner、Random、ArrayList的更多相关文章
- Java常用API(Scanner类)
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...
- Java常用API(Scanner,Random)匿名对象
API:即Application programming Interface,应用编程接口. Java中封装了许许多多的API供用户使用,Scanner与Random便是其中之一,API实际就是类,已 ...
- java第3天:Scanner,Random,ArrayList
第一章:Scanner从入门到放弃 1 API的概述和使用步骤 API简称应用程序编程接口,是JDK给我们提供好的可以直接使用的类和方法,是程序员随手使用的字典. *** 2 Scanner的概述 2 ...
- Java常用API(ArrayList类)
Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...
- List容器——ArrayList及常用API
List: ① List容器是有序的collection(也称为序列).此接口的用户可以对List容器中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜 ...
- Java常用API(Random类)
Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...
- Java 常用API(二)
目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar ...
- Java 常用API(一)
目录 Java 常用API(一) 1. Scanner类 引用类型的一般使用步骤 Scanner的使用步骤 例题 2. 匿名对象 概述 匿名对象作为方法的参数 匿名对象作为方法的返回值 3. Rand ...
- Java | 个人总结的Java常用API手册汇总
目录 常用API JavaAPI 1 java.lang String StringBuilder Integer parseXxx Math Object System Throwable Thre ...
随机推荐
- java实现第七届蓝桥杯生日蜡烛
生日蜡烛 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过 ...
- Java实现第八届蓝桥杯日期问题
日期问题 题目描述 小明正在整理一批历史文献.这些历史文献中出现了很多日期.小明知道这些日期都在1960年1月1日至2059年12月31日.令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/ ...
- portapack发射GPS的信号实现GPS脱机模拟器
要注意portapack必须要购买带高精度晶振的版本,另外固件要刷gridRF版本,用官方的或者havoc的都不行. 固件在这下载: 链接: https://pan.baidu.com/s/16flB ...
- DirectX11 With Windows SDK--31 阴影映射
前言 阴影既暗示着光源相对于观察者的位置关系,也从侧面传达了场景中各物体之间的相对位置.本章将起底最基础的阴影映射算法,而像复杂如级联阴影映射这样的技术,也是在阴影映射的基础上发展而来的. 学习目标: ...
- 扩展.Django-权限系统
目录 Django权限系统auth User 新建用户 认证用户 修改密码 登录 退出登录 只允许登录的用户访问 Group Permission 检查用户权限 管理用户权限 自定义权限 Django ...
- Autoware 标定工具 Calibration Tool Kit 联合标定 Robosense-16 和 ZED 相机!
一.安装 Autoware & ZED 内参标定 & 外参标定准备 之前的这篇文章:Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定! 记录了我用 ...
- php实现登录失败次数限制
需求:同一个账号在同一个IP地址连续密码输错一定次数后,这个账号是会被锁定30分钟的. 实现思路: 需要一个表(user_login_info)负责记录用户登录的信息,不管登录成功还是失败都记录.并且 ...
- python获取本地时间戳
import time print(time.time())#获当前时间的时间戳 print(time.localtime())#获取本地时间 print(time.strftime('%Y-%m-% ...
- 命令中"|"的意义
管道命令,是指 | 的左边运行结果是|右边的输入条件或者范围.如:history | grep date指从history这条命令运行的结果中显示包含有 “date” 的命令 下面举一个例子: 这是运 ...
- #Linux 下 Xampp的安装与Hello World
一.下载安装 去官网下载 移动下载完毕的xampp-linux-x64-7.4.6-0-installer.run 到/usr/local/jayce-softwares/xampp目录下(jayce ...