API(Application Programming Interface),应用程序编程接口。
Java API是一本程序员的 字典
,是JDK中提供给我们使用的类的说明文档。
这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
离线API文档下载 提取码:uitw
创建对象的标准格式
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符
new 类名称();
new 类名称().属性;
new 类名称().方法;
匿名对象只能使用唯一的一次!!
Scanner类在基础语法发过了,传送门
此类的实例用于生成伪随机数流。
如果用相同的种子创建两个 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);
}
}
之前学习数组时,发现一个缺点!
数组一旦创建,就无法改变数组的长度。
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 实例的容量调整为列表的当前大小 |
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
原文:https://www.cnblogs.com/1101-/p/13019660.html