1.各种类
1.System.out
System.out
是 Java 中的标准输出流,属于 PrintStream
类。它主要用于在控制台输出数据。System.out
提供了许多方法,可以输出各种类型的数据。以下是 System.out
所在的 PrintStream
类的常用方法:
常用方法:
-
print()
:- 输出数据但不换行。
- 支持多种数据类型:
print(boolean b)
print(char c)
print(char[] s)
print(double d)
print(float f)
print(int i)
print(long l)
print(Object obj)
print(String s)
-
println()
:- 输出数据并自动换行。
- 支持同样多种数据类型:
println()
: 输出空行(只换行)println(boolean b)
println(char c)
println(char[] s)
println(double d)
println(float f)
println(int i)
println(long l)
println(Object obj)
println(String s)
-
printf()
:- 格式化输出,类似于 C 语言的
printf
。 - 支持格式化字符串,适用于多种类型的输出。
- 语法:
printf(String format, Object... args)
- 常用的格式化符号:
%d
: 输出整数%f
: 输出浮点数%s
: 输出字符串%n
: 换行%c
: 输出字符
- 格式化输出,类似于 C 语言的
-
format()
:format()
和printf()
类似,用于格式化输出。- 语法:
format(String format, Object... args)
-
append()
:- 将字符或字符串追加到输出流中。
- 支持几种不同类型:
append(char c)
append(CharSequence csq)
append(CharSequence csq, int start, int end)
-
write()
:- 将字节数据写入输出流,不常用于普通文本输出,主要用于字节流输出。
- 支持以下形式:
write(byte[] b, int off, int len)
write(int b)
-
flush()
:- 强制将缓冲区中的数据输出。
System.out
是带缓冲的输出流,有时为了确保数据被立即输出,可以调用flush()
。
-
close()
:- 关闭输出流,释放相关资源。在程序执行时通常不需要显式调用,因为 JVM 会自动管理
System.out
的生命周期。
- 关闭输出流,释放相关资源。在程序执行时通常不需要显式调用,因为 JVM 会自动管理
2.Scanner
在 Java 中,Scanner
类用于从输入流(如控制台、文件等)读取各种类型的数据。以下是 Scanner
类常用的方法及其作用:
1. 基本输入方法:
next()
: 读取下一个单词(以空格或换行符为分隔)。nextLine()
: 读取一整行,直到换行符为止。nextInt()
: 读取下一个整数。nextFloat()
: 读取下一个浮点数(float
类型)。nextDouble()
: 读取下一个双精度浮点数(double
类型)。nextBoolean()
: 读取下一个布尔值(true
或false
)。nextByte()
: 读取下一个字节(byte
类型的整数)。nextShort()
: 读取下一个短整数(short
类型)。nextLong()
: 读取下一个长整数(long
类型)。nextBigInteger()
: 读取一个大整数(BigInteger
类型)。nextBigDecimal()
: 读取一个大浮点数(BigDecimal
类型)。
2. 检查输入是否存在:
hasNext()
: 检查是否还有下一个输入。hasNextLine()
: 检查是否还有下一行。hasNextInt()
: 检查是否有下一个整数。hasNextFloat()
: 检查是否有下一个float
值。hasNextDouble()
: 检查是否有下一个double
值。hasNextBoolean()
: 检查是否有下一个布尔值。hasNextByte()
: 检查是否有下一个字节。hasNextShort()
: 检查是否有下一个短整数。hasNextLong()
: 检查是否有下一个长整数。
3. 跳过输入:
skip(String pattern)
: 跳过当前输入中匹配指定正则表达式的部分。next(String pattern)
: 读取匹配指定正则表达式的下一个输入。
4. 关闭 Scanner
:
close()
: 关闭Scanner
,释放其占用的资源。
5. 其他实用方法:
findInLine(String pattern)
: 从当前行找到并返回匹配指定正则表达式的文本。findWithinHorizon(String pattern, int horizon)
: 在给定的范围内查找匹配指定正则表达式的文本。useDelimiter(String pattern)
: 设置输入的分隔符,默认是空格和换行符。
3.Arrays
-
排序
Arrays.sort()
: 对数组进行升序排序。
import java.util.Arrays;
public class ArraysSortExample {
public static void main(String[] args) {
int[] numbers = {5, 2, 8, 1, 3};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 5, 8]
}
}
-
搜索
Arrays.binarySearch()
: 在已排序的数组中进行二分查找,返回元素的索引或负值(表示元素不存在)。
import java.util.Arrays;
public class ArraysBinarySearchExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 5, 8};
int index = Arrays.binarySearch(numbers, 5);
System.out.println("Index of 5: " + index); // 输出:Index of 5: 3
}
}
-
填充
Arrays.fill()
: 将数组的所有元素填充为指定的值。
import java.util.Arrays;
public class ArraysFillExample {
public static void main(String[] args) {
int[] numbers = new int[5];
Arrays.fill(numbers, 10);
System.out.println(Arrays.toString(numbers)); // 输出:[10, 10, 10, 10, 10]
}
}
-
比较
Arrays.equals()
: 比较两个数组的内容是否相同。
import java.util.Arrays;
public class ArraysEqualsExample {
public static void main(String[] args) {
int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
boolean isEqual = Arrays.equals(array1, array2);
System.out.println("Arrays equal: " + isEqual); // 输出:Arrays equal: true
}
}
-
转换为字符串
Arrays.toString()
: 将一维数组转换为字符串表示。Arrays.deepToString()
: 将多维数组转换为字符串表示。
import java.util.Arrays;
public class ArraysToStringExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 4, 5]
}
}
import java.util.Arrays;
public class ArraysDeepToStringExample {
public static void main(String[] args) {
int[][] numbers = {{1, 2}, {3, 4}};
System.out.println(Arrays.deepToString(numbers)); // 输出:[[1, 2], [3, 4]]
}
}
-
复制
Arrays.copyOf()
: 复制数组的一部分或全部内容到一个新数组中。Arrays.copyOfRange()
: 复制数组的指定范围到一个新数组中
import java.util.Arrays;
public class ArraysCopyOfExample {
public static void main(String[] args) {
int[] original = {1, 2, 3, 4, 5};
int[] copy = Arrays.copyOf(original, 3);
System.out.println(Arrays.toString(copy)); // 输出:[1, 2, 3]
}
}
import java.util.Arrays;
public class ArraysCopyOfRangeExample {
public static void main(String[] args) {
int[] original = {1, 2, 3, 4, 5};
int[] copy = Arrays.copyOfRange(original, 1, 4);
System.out.println(Arrays.toString(copy)); // 输出:[2, 3, 4]
}
}
-
设定数组的指定位置的值
Arrays.setAll()
: 使用指定的函数设置数组的每个元素的值。
import java.util.Arrays;
public class ArraysSetAllExample {
public static void main(String[] args) {
int[] numbers = new int[5];
Arrays.setAll(numbers, i -> i * 2);
System.out.println(Arrays.toString(numbers)); // 输出:[0, 2, 4, 6, 8]
}
}
4.ArrayList
添加元素
add(E e)
: 在列表末尾添加元素。add(int index, E element)
: 在指定位置插入元素。addAll(Collection<? extends E> c)
: 将指定集合中的所有元素添加到列表末尾。addAll(int index, Collection<? extends E> c)
: 从指定位置开始,将指定集合中的所有元素添加到列表。
访问和修改元素
get(int index)
: 返回指定位置的元素。set(int index, E element)
: 用指定元素替换指定位置的元素。
删除元素
remove(Object o)
: 删除首次出现的指定元素。remove(int index)
: 删除指定位置的元素。removeAll(Collection<?> c)
: 删除列表中所有与指定集合相同的元素。removeIf(Predicate<? super E> filter)
: 删除所有与给定条件匹配的元素。clear()
: 删除所有元素。
查找和检查
contains(Object o)
: 检查列表是否包含指定元素。indexOf(Object o)
: 返回列表中首次出现指定元素的索引。lastIndexOf(Object o)
: 返回列表中最后一次出现指定元素的索引。isEmpty()
: 检查列表是否为空。
大小和容量
size()
: 返回列表中元素的数量。trimToSize()
: 将列表的容量调整为当前大小,减少内存使用。
转换和集合操作
toArray()
: 返回包含列表中所有元素的数组。toArray(T[] a)
: 返回包含列表中所有元素的数组,并将其存储到指定数组中。
迭代
iterator()
: 返回列表的迭代器。listIterator()
: 返回列表的列表迭代器。forEach(Consumer<? super E> action)
: 使用指定的操作遍历列表中的每个元素。
排序和其他操作
sort(Comparator<? super E> c)
: 使用指定的比较器对列表进行排序。subList(int fromIndex, int toIndex)
: 返回列表中指定范围的视图(子列表)。
比较
equals(Object o)
: 检查列表是否与指定对象相等。hashCode()
: 返回列表的哈希码。
特殊操作
replaceAll(UnaryOperator<E> operator)
: 使用指定的操作替换列表中的所有元素。shuffle(Random rnd)
: 打乱列表中的元素顺序。
5.Random
生成随机数
nextInt()
: 返回一个随机的int
值。nextInt(int bound)
: 返回一个在0
(包含)和指定bound
(不包含)之间的随机int
值。nextLong()
: 返回一个随机的long
值。nextDouble()
: 返回一个在0.0
(包含)和1.0
(不包含)之间的随机double
值。nextFloat()
: 返回一个在0.0
(包含)和1.0
(不包含)之间的随机float
值。nextBoolean()
: 返回一个随机的boolean
值。nextShort()
: 返回一个随机的short
值。nextChar()
: 返回一个随机的char
值。nextBytes(byte[] bytes)
: 将随机生成的字节填充到指定的字节数组中。nextGaussian()
: 返回一个符合高斯分布(正态分布)的随机double
值。
生成随机数的范围
nextInt(int origin, int bound)
: 返回一个在origin
(包含)和bound
(不包含)之间的随机int
值。nextDouble(double origin, double bound)
: 返回一个在origin
(包含)和bound
(不包含)之间的随机double
值。
种子设置和状态
setSeed(long seed)
: 设置随机数生成器的种子。相同的种子会导致相同的随机数序列。getSeed()
: 获取当前的种子值(注意这个方法在标准Random
类中不存在,但在一些扩展实现中可能会有)。
Random
类构造函数
Random()
: 创建一个使用当前时间戳作为种子的随机数生成器。Random(long seed)
: 创建一个使用指定种子的随机数生成器。