常用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 ...
随机推荐
- (三)Host头攻击
01 漏洞描述 为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段.例如,在php里用_SERVER["HTTP_HOST"].但是这个Host字段值是不可信赖的( ...
- 若linux 的分区硬盘满,如何处理?
一.确定是不是真的是磁盘空间不足 输入命令:df –lh 查看磁盘信息 二.如何定位最大文件目录 输入命令:cd / 进入根目录. 输入命令:du -h max-depth=1 寻找当前目录,哪个文件 ...
- Linux下自己和自己用各种方法进行文件的上传下载
环境: Ubuntu 16.04 1.SCP # 上传 scp /home/sea/Desktop/test.sh sea@192.168.1.31:/home/sea/Desktop/test.sh ...
- Spring Boot 在启动时进行配置文件加解密
Spring Boot Application 事件和监听器 寻找到application.yml的读取的操作. 从spring.factories 中查看到 # Application Listen ...
- .Net Core基础的健康检查
前言 健康检查能查看我们的应用程序当前是否是一个健康的运行状态.微软已经给我们提供了健康检查轮子,只需要简单的配置就能完成服务的状态检查.一起来实现一个最简单的健康检查吧. 开始 新建一个空的webA ...
- JPS/JPS+ 寻路算法
目录 概念 强迫邻居(Forced Neighbour) 跳点(Jump Point) JPS 寻路算法(Jump Point Search) 实现原理 示例过程 JPS+(Jump Point Se ...
- cb17a_c++_构造string对象的方法
cb17a_c++_构造string对象的方法string sstring s(s2)string s("value")string s(n,'c')string s(b,e) / ...
- 11、vue-路由
1.路由: 官方提供一个插件,构建单页面应用,主要实现得功能页面得切换.组件得跳转 2.vue中得路由:vue-router包,如果是脚手架进行搭建得,那么是不需要安装vue-router这个包得,因 ...
- Java学习笔记7(IO)
IO(输入输出) IO流按照操作数据的不同,分为字节流和字符流,按照数据传输方向分为输入流和输出流. 字节流 计算机中,所有文件都是以二进制(字节)形式存在,IO流中针对字节的输入输出提供了一系列的流 ...
- JSON Web令牌(JWT)介绍与使用
手机端接口开发会遇到一个问题是,接口登录后需要返回一个Token.token首先有一点必须唯一,每次请求都需要把token给带上.基于必须唯一的特性,很多朋友在开发是都选择了uuid.是不是token ...