Common Java Utility Libraries and Their Usage Examples

This article introduces a collection of essential Java utility libraries—including core Java methods, Apache Commons, Commons BeanUtils, Commons IO, and Google Guava—explaining their key features, Maven dependencies, and practical code snippets for tasks such as string handling, collection operations, object mapping, file I/O, and advanced data structures.

Java Architect Essentials
Java Architect Essentials
Java Architect Essentials
Common Java Utility Libraries and Their Usage Examples

1. Java Built‑in Utility Methods

Examples of common operations using the standard Java API, such as joining a List into a comma‑separated string, case‑insensitive string comparison, safe object equality checks with Objects.equals, and obtaining the intersection of two lists.

// How to join a list into a comma‑separated string
List<String> list = Arrays.asList("a", "b", "c");
String join = list.stream().collect(Collectors.joining(","));
System.out.println(join); // a,b,c

// Using String.join
default String join = String.join(",", list);
System.out.println(join); // a,b,c

// Case‑insensitive comparison
if (strA.equalsIgnoreCase(strB)) {
    System.out.println("相等");
}

// Safe object equality
Objects.equals(strA, strB);

// List intersection
list1.retainAll(list2);
System.out.println(list1); // [a, b]

2. Apache Commons Utility Libraries

2.1 commons‑lang3 (Enhanced java.lang)

Maven dependency:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

Key utilities include: StringUtils.isEmpty / isNotEmpty – null‑safe string emptiness checks. StringUtils.isBlank / isNotBlank – also trims whitespace. StringUtils.capitalize – capitalizes the first character. StringUtils.repeat – repeats a string. DateFormatUtils.format and DateUtils – simplify date formatting and arithmetic. ImmutablePair and ImmutableTriple – lightweight tuple containers.

// String emptiness checks
boolean empty = StringUtils.isEmpty(cs);
boolean notEmpty = StringUtils.isNotEmpty(cs);

// Capitalize first letter
String capitalize = StringUtils.capitalize("yideng");
System.out.println(capitalize); // Yideng

// Repeat string
String repeated = StringUtils.repeat("ab", 2);
System.out.println(repeated); // abab

// Date formatting
String date = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
System.out.println(date);

// Tuple example
ImmutablePair<Integer, String> pair = ImmutablePair.of(1, "yideng");
System.out.println(pair.getLeft() + "," + pair.getRight()); // 1,yideng

2.2 commons‑collections4 (Collection Utilities)

Maven dependency:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

Provides methods such as CollectionUtils.retainAll, union, and subtract for set operations, as well as CollectionUtils.isEmpty checks.

// Collection emptiness
boolean empty = CollectionUtils.isEmpty(coll);

// Intersection, union, subtraction
Collection<String> intersect = CollectionUtils.retainAll(listA, listB);
Collection<String> union = CollectionUtils.union(listA, listB);
Collection<String> diff = CollectionUtils.subtract(listA, listB);

2.3 commons‑beanutils (Bean Manipulation)

Maven dependency:

<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.4</version>
</dependency>

Allows setting and getting bean properties via reflection, and converting between beans and maps.

User user = new User();
BeanUtils.setProperty(user, "id", 1);
BeanUtils.setProperty(user, "name", "yideng");
System.out.println(BeanUtils.getProperty(user, "name")); // yideng

Map<String, String> map = BeanUtils.describe(user);
User newUser = new User();
BeanUtils.populate(newUser, map);
System.out.println(newUser); // {"id":1,"name":"yideng"}

2.4 commons‑io (File I/O Utilities)

Maven dependency:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.8.0</version>
</dependency>

Simplifies reading, writing, and copying files.

File file = new File("demo1.txt");
List<String> lines = FileUtils.readLines(file, Charset.defaultCharset());
FileUtils.writeLines(new File("demo2.txt"), lines);
FileUtils.copyFile(srcFile, destFile);

3. Google Guava Utility Library

Maven dependency:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1.1-jre</version>
</dependency>

3.1 Collection Creation

List<String> list = Lists.newArrayList();
List<Integer> numbers = Lists.newArrayList(1, 2, 3);
List<Integer> reversed = Lists.reverse(numbers);
System.out.println(reversed); // [3, 2, 1]
List<List<Integer>> partitions = Lists.partition(numbers, 10);
Map<String, String> map = Maps.newHashMap();
Set<String> set = Sets.newHashSet();

3.2 Advanced Collection Types

3.2.1 Multimap (multiple values per key)

Multimap<String, Integer> map = ArrayListMultimap.create();
map.put("key", 1);
map.put("key", 2);
System.out.println(map); // {"key":[1,2]}
Map<String, Collection<Integer>> asMap = map.asMap();

3.2.2 BiMap (bijective map)

BiMap<String, String> biMap = HashBiMap.create();
biMap.put("key", "value");
System.out.println(biMap); // {"key":"value"}
BiMap<String, String> inverse = biMap.inverse();
System.out.println(inverse); // {"value":"key"}

3.2.3 Table (two‑dimensional map)

Table<Integer, String, String> table = HashBasedTable.create();
table.put(18, "男", "yideng");
table.put(18, "女", "Lily");
System.out.println(table.get(18, "男")); // yideng
Map<String, String> row = table.row(18);
System.out.println(row); // {"男":"yideng","女":"Lily"}

3.2.4 Multiset (set with element counts)

Multiset<String> multiset = HashMultiset.create();
multiset.add("apple");
multiset.add("apple");
multiset.add("orange");
System.out.println(multiset.count("apple")); // 2
Set<String> distinct = multiset.elementSet();
System.out.println(distinct); // ["orange","apple"]

The article concludes with a brief invitation to share and join a community of architects for further learning.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

JavaBackend DevelopmentCode ExamplesApache CommonsGoogle GuavaUtility Libraries
Java Architect Essentials
Written by

Java Architect Essentials

Committed to sharing quality articles and tutorials to help Java programmers progress from junior to mid-level to senior architect. We curate high-quality learning resources, interview questions, videos, and projects from across the internet to help you systematically improve your Java architecture skills. Follow and reply '1024' to get Java programming resources. Learn together, grow together.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.