常用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实现第三届蓝桥杯数量周期
数量周期 [结果填空](满分9分) 复杂现象背后的推动力,可能是极其简单的原理.科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则.爱因斯坦的相对论是这方面的典范例证. 很早的时候,生物学家观察某 ...
- 用户和用户组管理-影子文件shadow
ll /etc/shadow 由于shadow文件的权限,所以,只有root可以读 vi /etc/shadow 一共有九列信息: 第一列表示用户名:第二列表示经过加密之后的密码,如果密码是!!或者* ...
- Python API自动化测试实操
废话不多说,直接上代码截图: 我们首先来看看整个工程的目录结构,这样以便于了解项目的调用关系:config #这里是配置包 -- base_url.py 具体配置了被测系统的url and pat ...
- 三分钟搭建websocket实时在线聊天,项目经理也不敢这么写
我们先看一下下面这张图: 可以看到这是一个简易的聊天室,两个窗口的消息是实时发送与接收的,这个主要就是用我们今天要讲的websocket实现的. websocket是什么? websocket是一种网 ...
- idea 启动命令行的时候提示不能创建PTY
问题描述: 昨天上午,凯哥还在好好的使用idea,中午的时候,360扫描,好像要升级还是要干嘛的,没细看,然后凯哥就点击确定.结果到下午使用idea的Terminal 命令行的时候提示,如下图错误: ...
- [转] strtol()详解
点击此处阅读原文 今天,在review 一些代码的时候,看到了strtol()这个函数,由于以前使用它的时候,还没有深刻的了解,这次,我决定探个究竟. 网上关于这个函数的资料大都来源于同份资料,lin ...
- (八)利用 Profile 构建不同环境的部署包
接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(test).预发布环境(pre) ...
- AutoIt实现文件上传
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...
- python中的bytes和str类型
经过一上午的查找资料.大概理清楚了bytes类型和str类型的区别. bytes类型和str类型在呈现形式有相同之处,如果你print一个bytes类型的变量,会打印一个用b开头,用单引号括起来的序列 ...
- 【01JMeter基础】测试计划
测试计划 整个脚本的集合根目录,所有线程组集合的承载,可以添加线程组.测试片段.非测试元件.配置元件.监听器.定时器.前置/后置处理起器.断言等 一.用户自定义变量 可以使用在所有的线程组中,通过${ ...