建设银行官方网站官网,高端网站建设一般多少钱,化妆品网站建设预算,wordpress怎么设置页面导航一、JDK自带工具包 #xff08;java.lang*.java.util.*等#xff09;
面是Java中jdk中附带的一些常见工具类及其方法和示例的简介 工具类 / 类所在包 常用方法 描述 示例 Arrays (java.util) sort() 对数组进行排序 Arrays.sort(arr); binarySearch() 在数组中执行…一、JDK自带工具包 java.lang*.java.util.*等
面是Java中jdk中附带的一些常见工具类及其方法和示例的简介 工具类 / 类所在包 常用方法 描述 示例 Arrays (java.util) sort() 对数组进行排序 Arrays.sort(arr); binarySearch() 在数组中执行二分查找 int index Arrays.binarySearch(arr, key); equals() 比较两个数组内容是否相等 boolean isEqual Arrays.equals(arr1, arr2); fill() 使用特定值填充数组 Arrays.fill(arr, val); toString() 返回数组内容的字符串表示 String arrayString Arrays.toString(arr); ArrayList (java.util) add() 向列表添加元素 list.add(element); remove() 移除列表中的元素 list.remove(index); size() 返回列表中的元素个数 int size list.size(); get() 获取指定索引位置的元素 Object element list.get(index); contains() 判断列表是否包含某个元素 boolean isPresent list.contains(element); Collections (java.util) sort() 对列表进行排序 Collections.sort(list); reverse() 反转列表 Collections.reverse(list); shuffle() 随机排列列表 Collections.shuffle(list); min()/max() 查找集合中的最小/最大值 Object min Collections.min(collection); synchronizedList() 返回线程安全的列表 List syncList Collections.synchronizedList(list); Math (java.lang) abs() 返回绝对值 int absolute Math.abs(-123); max()/min() 返回两个数中的最大值/最小值 int max Math.max(10, 20); sqrt() 返回平方根 double root Math.sqrt(16); pow() 返回第一个参数的第二个参数次幂 double power Math.pow(2, 3); random() 返回一个随机数 double randomNum Math.random(); SimpleDateFormat (java.text) format() 格式化日期为文本 String dateStr new SimpleDateFormat(yyyy-MM-dd).format(new Date()); parse() 解析文本以生成日期 Date date new SimpleDateFormat(yyyy-MM-dd).parse(2021-01-01); UUID (java.util) randomUUID() 生成随机的唯一标识符 UUID id UUID.randomUUID(); fromString() 从字符串中创建UUID UUID id UUID.fromString(uuidString); ExecutorService (java.util.concurrent) submit() 提交一个可执行的任务以供执行 Future result executor.submit(aCallable); invokeAll() 执行给定的任务集合 ListFuture results executor.invokeAll(taskList); shutdown() 启动有序关闭 executor.shutdown(); awaitTermination() 阻塞直到所有任务在关闭请求后完成执行 executor.awaitTermination(1, TimeUnit.MINUTES); Stream (java.util.stream) filter() 对流进行筛选 stream.filter(e - e 10).collect(Collectors.toList()); map() 对流中的每个元素应用函数 stream.map(String::toUpperCase).collect(Collectors.toList()); collect() 将流转换成其他形式 ListInteger list stream.collect(Collectors.toList()); forEach() 遍历流中的每个元素 stream.forEach(System.out::println); reduce() 对流中元素进行归约 int sum stream 二、Apache Commons 相关
Apache Commons提供的工具类大大简化了日常编码任务使得开发者可以快速高效地处理常见问题
2.1. 相关maven依赖
!-- Apache Commons Lang --
dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.12.0/version
/dependency!-- Apache Commons IO --
dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.11.0/version
/dependency!-- Apache Commons Collections --
dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-collections4/artifactIdversion4.4/version
/dependency2.2. 相关类库以及方法介绍 工具类 / 所属库 常用方法 描述 使用示例 StringUtils / Apache Commons Lang isEmpty() 检查字符串是否为空或null StringUtils.isEmpty(str) isNotEmpty() 检查字符串是否非空且非null StringUtils.isNotEmpty(str) join() 连接数组元素为字符串 StringUtils.join(array, ,) reverse() 反转字符串 StringUtils.reverse(str) substringBetween() 获取两个字符串之间的子串 StringUtils.substringBetween(str, tag, /tag) FileUtils / Apache Commons IO readFileToString() 将文件内容读取为字符串 FileUtils.readFileToString(file, Charset.defaultCharset()) writeStringToFile() 将字符串写入文件 FileUtils.writeStringToFile(file, string, Charset.defaultCharset()) copyFile() 复制文件 FileUtils.copyFile(srcFile, destFile) deleteQuietly() 安静地删除文件不抛异常 FileUtils.deleteQuietly(file) sizeOfDirectory() 计算目录大小 FileUtils.sizeOfDirectory(directory) RandomStringUtils / Apache Commons Lang randomAlphabetic() 生成随机字母字符串 RandomStringUtils.randomAlphabetic(5) randomNumeric() 生成随机数字字符串 RandomStringUtils.randomNumeric(5) randomAlphanumeric() 生成随机字母数字混合字符串 RandomStringUtils.randomAlphanumeric(5) NumberUtils / Apache Commons Lang isCreatable() 检查字符串是否能转换为数字 NumberUtils.isCreatable(123) toInt() 将字符串转换为int型数字 NumberUtils.toInt(5) toDouble() 将字符串转换为double型数字 NumberUtils.toDouble(3.14) max() 返回多个数字中的最大值 NumberUtils.max(1, 2, 3) min() 返回多个数字中的最小值 NumberUtils.min(1, 2, 3) IOUtils / Apache Commons IO toString() 将输入流转换为字符串 IOUtils.toString(inputStream, Charset.defaultCharset()) copy() 将输入流的内容复制到输出流 IOUtils.copy(inputStream, outputStream) toByteArray() 将输入流转换为字节数组 IOUtils.toByteArray(inputStream) DigestUtils / Apache Commons Codec md5Hex() 对字符串进行MD5散列 DigestUtils.md5Hex(string) sha256Hex() 对字符串进行SHA-256散列 DigestUtils.sha256Hex(string) CollectionUtils / Apache Commons Collections isEmpty() 检查集合是否为空 CollectionUtils.isEmpty(collection) isNotEmpty() 检查集合是否非空 CollectionUtils.isNotEmpty(collection) intersect() 获取两个集合的交集 CollectionUtils.intersection(a, b) union() 获取两个集合的并集 CollectionUtils.union(a, b) subtract() 获取两个集合的差集在a中不在b中的元素 CollectionUtils.subtract(a, b) DateFormatUtils / Apache Commons Lang format() 格式化日期为字符串 DateFormatUtils.format(new Date(), yyyy-MM-dd HH:mm:ss)
三、Guava Google提供的开源工具库
Guava是Google提供的一套开源的Java工具库它包含了很多质量高效的Java工具类。下面是Guava中一些常用的工具类和方法
3.1. 相关maven依赖
dependencies!-- Other dependencies --dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion30.1-jre/version/dependency!-- Other dependencies --
/dependencies
3.2. 相关类库以及方法介绍 工具类/类所在包 常用方法 描述 示例 Lists (com.google.common.collect) newArrayList() 创建一个ArrayList实例 ListString list Lists.newArrayList(); reverse() 返回一个反转的列表视图 ListString reversed Lists.reverse(list); partition() 把列表分割成指定大小的子列表 ListListString parts Lists.partition(list, 2); Maps (com.google.common.collect) newHashMap() 创建一个HashMap实例 MapString, Integer map Maps.newHashMap(); uniqueIndex() 对集合中元素进行唯一性索引 ImmutableMapString, String index Maps.uniqueIndex(list, keyFunction); filterKeys() 返回一个满足特定键条件的Map视图 MapString, Integer filteredMap Maps.filterKeys(map, Predicates.notNull()); Sets (com.google.common.collect) newHashSet() 创建一个HashSet实例 SetString set Sets.newHashSet(); intersection() 返回两个集合的交集 SetString common Sets.intersection(set1, set2); difference() 返回两个集合的差集 SetString diff Sets.difference(set1, set2); union() 返回两个集合的并集 SetString union Sets.union(set1, set2); Multimap (com.google.common.collect) ArrayListMultimap.create() 创建一个多值Map实例 MultimapString, Integer multimap ArrayListMultimap.create(); put() 向Multimap添加键值对 multimap.put(key, value); get() 根据键获取值集合 CollectionInteger values multimap.get(key); values() 获取所有值的集合 CollectionInteger allValues multimap.values(); Cache (com.google.common.cache) CacheBuilder.newBuilder() 创建一个Cache实例 LoadingCacheKey, Graph graphs CacheBuilder.newBuilder().build(loader); put() 向Cache中添加一个元素 cache.put(key, value); getIfPresent() 如果存在则获取元素 Graph g cache.getIfPresent(key); get() 获取缓存中的元素不存在则使用Loader加载 Graph g cache.get(key); invalidate() 从缓存中移除元素 cache.invalidate(key); Preconditions (com.google.common.base) checkNotNull() 检查对象是否为null Preconditions.checkNotNull(value); checkArgument() 检查表达式是否为真 Preconditions.checkArgument(i 0); checkState() 检查对象的状态 Preconditions.checkState(validateObjectState()); checkElementIndex() 检查索引是否有效 Preconditions.checkElementIndex(index, size); Strings (com.google.common.base) isNullOrEmpty() 检查字符串是否为null或空 boolean isNullOrEmpty Strings.isNullOrEmpty(input); nullToEmpty() 如果字符串为null返回空字符串 String safeString Strings.nullToEmpty(input); emptyToNull() 如果字符串为空返回null String nullableString Strings.emptyToNull(input); padEnd() 将字符串扩展到特定长度 String padded Strings.padEnd(input, minLength, padChar); padStart() 在字符串前添加字符直到特定长度 String padded Strings.padStart(input, minLength, padChar); RateLimitercom.google.common.util. concurrent RateLimiter.create(double permitsPerSecond) 创建一个RateLimiter实例 RateLimiter rateLimiter RateLimiter.create(2.0); rateLimiter.acquire() 请求一个许可如果许可可用则立即返回 rateLimiter.acquire(); rateLimiter.acquire(int permits) 请求指定数量的许可如果许可可用则立即返回 rateLimiter.acquire(2); rateLimiter.tryAcquire() 尝试获取一个许可如果许可可用则返回true boolean acquired rateLimiter.tryAcquire(); rateLimiter.tryAcquire(int permits) 尝试获取指定数量的许可如果许可可用则返回true boolean acquired rateLimiter.tryAcquire(3);
3.2.1.关于限流RateLimiter
下面是一个完整的示例
import com.google.common.util.concurrent.RateLimiter;public class Example {public static void main(String[] args) {RateLimiter rateLimiter RateLimiter.create(2.0); // 创建一个每秒允许2个许可的RateLimiter实例// 请求一个许可如果许可可用则立即返回rateLimiter.acquire();System.out.println(Task 1 executed);// 请求指定数量的许可如果许可可用则立即返回rateLimiter.acquire(2);System.out.println(Task 2 executed);// 尝试获取一个许可如果许可可用则返回trueboolean acquired rateLimiter.tryAcquire();System.out.println(Task 3 acquired: acquired);// 尝试获取指定数量的许可如果许可可用则返回trueacquired rateLimiter.tryAcquire(3);System.out.println(Task 4 acquired: acquired);}
}