Java常用工具类,让代码更简洁

1. Collections 类

java.util.Collections 提供了集合框架的静态方法工具。

  • sort(List<T> list): 对列表进行排序。

  • reverse(List<?> list): 反转列表的顺序。

  • min(Collection<? extends T> coll): 返回集合中的最小元素。

  • max(Collection<? extends T> coll): 返回集合中的最大元素。

  • binarySearch(List<? extends T> list, T key): 在已排序的列表中进行二分搜索。

  • synchronizedList(List<T> list): 返回同步的列表。

2. Arrays 类

java.util.Arrays 提供了对数组操作的静态方法。

  • sort(int[] a): 对数组进行排序。

  • binarySearch(int[] a, int key): 在已排序的数组中进行二分搜索。

  • asList(T... a): 将数组转换为 List

  • equals(int[] a, int[] a2): 比较两个数组是否相等。

  • fill(int[] a, int val): 用指定值填充数组。

3. Math 类

java.lang.Math 提供了各种数学运算方法。

  • abs(int a): 取绝对值。

  • sqrt(double a): 计算平方根。

  • pow(double a, double b): 计算幂次方。

  • max(int a, int b): 返回较大的数。

  • min(int a, int b): 返回较小的数。

  • random(): 返回一个介于 0.0 和 1.0 之间的随机数。

4. String 类

java.lang.String 提供了许多字符串操作的方法。

  • length(): 返回字符串的长度。

  • charAt(int index): 获取指定位置的字符。

  • substring(int beginIndex, int endIndex): 获取子字符串。

  • indexOf(String str): 返回子字符串的起始索引。

  • replace(CharSequence target, CharSequence replacement): 替换子字符串。

  • split(String regex): 按正则表达式拆分字符串。

  • toLowerCase(), toUpperCase(): 转换为小写或大写。

5. StringBuilder 和 StringBuffer 类

  • append(String str): 追加字符串,将给定的字符串添加到当前字符序列的末尾。

  • insert(int offset, String str): 在指定位置插入字符串,将给定的字符串插入到*当前字符序列中的指定位置。

  • delete(int start, int end): 删除子字符串,从当前字符序列中删除从 startend 之间的字符(包括 start 位置的字符,但不包括 end 位置的字符)。

  • reverse(): 反转字符串,将当前字符序列中的字符顺序颠倒。

  • replace(int start, int end, String str): 替换子字符串,将从 startend 之间的字符(包括 start 位置的字符,但不包括 end 位置的字符)替换为给定的字符串 str

  • substring(int start): 返回从指定位置开始到末尾的子字符串。

  • substring(int start, int end): 返回从 start 开始到 end 结束的子字符串(包括 start 位置的字符,但不包括 end 位置的字符)。

  • length(): 返回当前字符序列的长度。

  • setLength(int newLength): 设置字符序列的长度。如果新长度小于当前长度,则该字符序列被截断;如果新长度大于当前长度,则字符序列末尾会填充空字符 (\0)。

  • charAt(int index): 返回指定索引处的字符。

  • setCharAt(int index, char ch): 将指定索引处的字符设置为给定的字符 ch

  • toString(): 返回当前字符序列的字符串表示形式。

  • capacity(): 返回当前字符序列的容量,即内部数组的总长度。

  • ensureCapacity(int minimumCapacity): 确保容量至少为指定的最小容量,如果当前容量小于该值,则增加容量。

  • trimToSize(): 尝试减少存储此字符序列的数组的大小,使之刚好能够保存当前的字符序列。

6. Objects 类

java.util.Objects 提供了一些静态方法来操作对象,主要用于对象的比较、检查和哈希值生成。

  • equals(Object a, Object b): 比较两个对象是否相等。

  • hashCode(Object o): 返回对象的哈希值。

  • requireNonNull(T obj): 检查对象是否为 null

  • toString(Object o): 返回对象的字符串表示。

7. Files 类

java.nio.file.Files 提供了许多操作文件的静态方法。

文件和目录操作

  • createFile(Path path): 创建一个新的文件(如果文件已存在则抛出异常)。

  • createDirectory(Path dir): 创建一个新的目录(如果目录已存在则抛出异常)。

  • createDirectories(Path dir): 创建一个新的目录及其所有不存在的父目录。

  • createTempFile(String prefix, String suffix, FileAttribute<?>... attrs): 创建一个新的临时文件。

  • createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs): 在指定目录中创建一个新的临时文件。

  • createTempDirectory(String prefix, FileAttribute<?>... attrs): 创建一个新的临时目录。

  • createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs): 在指定目录中创建一个新的临时目录。

  • copy(Path source, Path target, CopyOption... options): 复制文件或目录。

  • move(Path source, Path target, CopyOption... options): 移动文件或目录。

  • delete(Path path): 删除文件或目录。

  • deleteIfExists(Path path): 如果文件或目录存在则删除。

  • exists(Path path, LinkOption... options): 检查文件是否存在。

  • notExists(Path path, LinkOption... options): 检查文件是否不存在。

  • isDirectory(Path path, LinkOption... options): 检查路径是否是目录。

  • isRegularFile(Path path, LinkOption... options): 检查路径是否是常规文件。

  • isSymbolicLink(Path path): 检查路径是否是符号链接。

  • isReadable(Path path): 检查文件是否可读。

  • isWritable(Path path): 检查文件是否可写。

  • isExecutable(Path path): 检查文件是否可执行。

  • isSameFile(Path path1, Path path2): 检查两个路径是否指向同一文件。

  • size(Path path): 返回文件大小。

  • getLastModifiedTime(Path path, LinkOption... options): 获取文件的最后修改时间。

  • setLastModifiedTime(Path path, FileTime time): 设置文件的最后修改时间。

  • getOwner(Path path, LinkOption... options): 获取文件的所有者。

  • setOwner(Path path, UserPrincipal owner): 设置文件的所有者。

  • getPosixFilePermissions(Path path, LinkOption... options): 获取文件的POSIX权限。

  • setPosixFilePermissions(Path path, Set<PosixFilePermission> perms): 设置文件的POSIX权限。

  • isHidden(Path path): 检查文件是否隐藏。

  • probesContentType(Path path): 获取文件的内容类型。

文件内容操作

  • newInputStream(Path path, OpenOption... options): 打开一个输入流以读取文件内容。

  • newOutputStream(Path path, OpenOption... options): 打开一个输出流以写入文件内容。

  • newBufferedReader(Path path, Charset cs): 创建一个新的 BufferedReader 以读取文件内容。

  • newBufferedWriter(Path path, Charset cs, OpenOption... options): 创建一个新的 BufferedWriter 以写入文件内容。

  • readAllBytes(Path path): 读取文件的所有字节。

  • readAllLines(Path path, Charset cs): 读取文件的所有行。

  • write(Path path, byte[] bytes, OpenOption... options): 将字节数组写入文件。

  • write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options): 将文本行写入文件。

  • readAttributes(Path path, String attributes, LinkOption... options): 读取文件的基本属性。

  • getAttribute(Path path, String attribute, LinkOption... options): 获取文件的特定属性值。

  • setAttribute(Path path, String attribute, Object value, LinkOption... options): 设置文件的特定属性值。

文件遍历

  • list(Path dir): 返回目录的文件列表的流。

  • walk(Path start, FileVisitOption... options): 深度优先遍历文件树。

  • find(Path start, int maxDepth, BiPredicate<Path, BasicFileAttributes> matcher, FileVisitOption... options): 按条件查找文件。

  • walkFileTree(Path start, FileVisitor<? super Path> visitor): 遍历文件树。

  • walkFileTree(Path start, Set<FileVisitOption> options, int maxDepth, FileVisitor<? super Path> visitor): 遍历文件树。

文件内容比较

  • mismatch(Path path1, Path path2): 比较两个文件的内容,返回第一个不同的字节位置。

8. Time API

java.time 包提供了现代化的日期和时间 API。

  • LocalDate.now(): 获取当前日期。

  • LocalTime.now(): 获取当前时间。

  • LocalDateTime.now(): 获取当前日期和时间。

  • Duration.between(Temporal startInclusive, Temporal endExclusive): 计算时间之间的持续时间。

  • Period.between(LocalDate startDate, LocalDate endDate): 计算日期之间的周期。

9. UUID 类

java.util.UUID 用于生成唯一标识符。

  • randomUUID(): 生成随机 UUID。

10. 正则表达式

java.util.regex 包中的类用于处理正则表达式。

  • Pattern.compile(String regex): 编译正则表达式。

  • Matcher.find(): 查找下一个匹配项。

  • Matcher.matches(): 尝试整个字符串与正则表达式匹配。

11. Path 和 Paths 类

java.nio.file.Path 表示文件路径,Paths 类用于创建 Path 实例。

  • Paths.get(String first, String... more): 创建 Path 对象。

  • resolve(Path other): 解析路径。

  • toAbsolutePath(): 转换为绝对路径。

  • getParent(): 获取父目录。

12. System 类

java.lang.System 提供了访问系统属性、环境变量和其他实用方法。

  • currentTimeMillis(): 获取当前时间的毫秒数。

  • arraycopy(Object src, int srcPos, Object dest, int destPos, int length): 数组复制。

  • getProperty(String key): 获取系统属性。

  • getenv(String name): 获取环境变量。

  • gc(): 提醒垃圾回收器运行。

13. Runtime 类

java.lang.Runtime 提供与应用程序运行环境的接口。

  • getRuntime(): 返回当前运行时环境的引用。

  • exec(String command): 执行命令。

  • availableProcessors(): 获取可用处理器数量。

  • maxMemory(): 返回 Java 虚拟机试图使用的最大内存量。

14. TimeUnit 枚举

java.util.concurrent.TimeUnit 枚举提供常用的时间单位。

  • SECONDS.sleep(long timeout): 休眠指定时间(以秒为单位)。

  • MILLISECONDS.toSeconds(long duration): 将毫秒转换为秒。

15. Properties 类

java.util.Properties 类表示一组持久的属性,通常用于配置文件。

  • load(InputStream inStream): 从输入流中加载属性。

  • store(OutputStream out, String comments): 将属性列表保存到输出流中。

  • getProperty(String key): 获取属性值。

  • setProperty(String key, String value): 设置属性值。

16. Optional 类

java.util.Optional 是一个容器类,代表可能含有或不含有非空值。

  • of(T value): 创建一个包含值的 Optional

  • empty(): 创建一个空的 Optional

  • isPresent(): 判断是否包含值。

  • ifPresent(Consumer<? super T> consumer): 如果值存在则执行给定的代码。

  • orElse(T other): 值存在则返回值,否则返回默认值。

17. Streams API

java.util.stream 包中的类用于处理数据流。

  • filter(Predicate<? super T> predicate): 筛选流中的元素。

  • map(Function<? super T, ? extends R> mapper): 转换流中的元素。

  • collect(Collector<? super T, A, R> collector): 收集流中的元素。

  • forEach(Consumer<? super T> action): 对每个元素执行操作。

18. Base64 类

java.util.Base64 提供了 Base64 编码和解码功能。

  • getEncoder(): 获取 Base64 编码器。

  • getDecoder(): 获取 Base64 解码器。

  • encode(byte[] src): 将字节数组编码为 Base64 字符串。

  • decode(String src): 将 Base64 字符串解码为字节数组。

19. ExecutorService 接口

java.util.concurrent.ExecutorService 是一个框架,用于管理线程池和并发任务。

  • submit(Callable<T> task): 提交任务并返回 Future

  • shutdown(): 启动有序关闭,不再接受新任务。

  • awaitTermination(long timeout, TimeUnit unit): 等待所有任务完成。

20. CompletableFuture 类

java.util.concurrent.CompletableFuture 提供了异步编程的能力。

  • supplyAsync(Supplier<U> supplier): 异步执行任务。

  • thenApply(Function<? super T,? extends U> fn): 异步任务完成后应用函数。

  • thenAccept(Consumer<? super T> action): 异步任务完成后执行操作。

  • join(): 阻塞等待异步任务完成并返回结果。

21. Locale 类

java.util.Locale 表示特定的地理、政治或文化区域。

  • getDefault(): 获取默认的 Locale

  • getCountry(): 获取国家代码。

  • getLanguage(): 获取语言代码。

  • getDisplayName(): 获取 Locale 的显示名称。

22. UUID 类

java.util.UUID 提供生成唯一标识符的功能。

  • randomUUID(): 生成随机 UUID。

  • fromString(String name): 根据指定字符串生成 UUID。

  • toString(): 获取 UUID 的字符串表示。

23. DateTimeFormatter 类

java.time.format.DateTimeFormatter 用于格式化和解析日期时间对象。

  • ofPattern(String pattern): 创建一个格式化器。

  • format(TemporalAccessor temporal): 格式化日期时间。

  • parse(CharSequence text): 解析日期时间字符串。

24. Instant 类

java.time.Instant 表示时间轴上的一个瞬时点。

  • now(): 获取当前时间的 Instant

  • ofEpochMilli(long epochMilli): 从纪元毫秒数创建 Instant

  • plus(Duration duration): 增加持续时间。

  • minus(Duration duration): 减少持续时间。

25.BigDecimal

构造方法

  • BigDecimal(String val): 通过字符串表示的数值创建 BigDecimal 对象。

  • BigDecimal(double val): 通过 double 类型的数值创建 BigDecimal 对象(可能存在精度问题)。

  • BigDecimal(int val): 通过整数类型的数值创建 BigDecimal 对象。

  • BigDecimal(long val): 通过长整数类型的数值创建 BigDecimal 对象。

  • BigDecimal(BigInteger val): 通过 BigInteger 类型的数值创建 BigDecimal 对象。

  • BigDecimal(BigInteger unscaledVal, int scale): 通过 BigInteger 类型的数值和一个标度值创建 BigDecimal 对象。

基本算术运算

  • add(BigDecimal augend): 加法,返回当前数值与指定数值的和。

  • subtract(BigDecimal subtrahend): 减法,返回当前数值减去指定数值的差。

  • multiply(BigDecimal multiplicand): 乘法,返回当前数值与指定数值的积。

  • divide(BigDecimal divisor): 除法,返回当前数值除以指定数值的商。

  • divide(BigDecimal divisor, int scale, RoundingMode roundingMode): 带舍入模式和精度的除法。

  • divide(BigDecimal divisor, RoundingMode roundingMode): 带舍入模式的除法。

  • divideToIntegralValue(BigDecimal divisor): 返回当前数值除以指定数值的整数部分。

  • divideAndRemainder(BigDecimal divisor): 返回当前数值除以指定数值的商和余数。

  • remainder(BigDecimal divisor): 返回当前数值除以指定数值的余数。

  • negate(): 返回当前数值的相反数。

  • abs(): 返回当前数值的绝对值。

  • plus(): 返回当前数值的副本。

  • pow(int n): 返回当前数值的 n 次幂。

  • sqrt(MathContext mc): 返回当前数值的平方根。

比较和检查

  • compareTo(BigDecimal val): 比较当前数值和指定数值。

  • equals(Object obj): 检查当前对象与指定对象是否相等。

  • min(BigDecimal val): 返回当前数值和指定数值中的较小者。

  • max(BigDecimal val): 返回当前数值和指定数值中的较大者。

  • signum(): 返回当前数值的符号函数(-1, 0, 1)。

取整和舍入

  • setScale(int newScale): 返回一个新的 BigDecimal,其标度为指定值。

  • setScale(int newScale, RoundingMode roundingMode): 使用指定的舍入模式设置标度。

  • round(MathContext mc): 根据指定的 MathContext 进行舍入。

  • stripTrailingZeros(): 返回去除尾随零后的 BigDecimal

转换和格式化

  • toString(): 返回当前数值的字符串表示。

  • toPlainString(): 返回没有指数部分的当前数值的字符串表示。

  • toEngineeringString(): 返回工程计数法的字符串表示。

  • toBigInteger(): 转换为 BigInteger

  • toBigIntegerExact(): 精确转换为 BigInteger,如果有小数部分则抛出异常。

  • toBigIntegerExact(): 精确转换为 BigInteger,如果有小数部分则抛出异常。

  • longValue(): 以 long 类型返回当前数值。

  • longValueExact(): 精确转换为 long,如果有小数部分则抛出异常。

  • intValue(): 以 int 类型返回当前数值。

  • intValueExact(): 精确转换为 int,如果有小数部分则抛出异常。

  • shortValue(): 以 short 类型返回当前数值。

  • shortValueExact(): 精确转换为 short,如果有小数部分则抛出异常。

  • byteValue(): 以 byte 类型返回当前数值。

  • byteValueExact(): 精确转换为 byte,如果有小数部分则抛出异常。

  • floatValue(): 以 float 类型返回当前数值。

  • doubleValue(): 以 double 类型返回当前数值。

其他

  • hashCode(): 返回当前对象的哈希码。

  • unscaledValue(): 返回当前数值的无标度值。

  • scale(): 返回当前数值的标度。

  • precision(): 返回当前数值的精度。

  • ulp(): 返回当前数值的单位小数。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值