Languages: Python C C++ Go Java Ruby Rust Perl R ← Full TOC

← Java Index

📦 java.util — Collections, Date/Time, Optional, Random, Scanner

The most heavily used utility package. Provides the entire Collections Framework (ArrayList, HashMap, LinkedList, TreeMap), as well as Optional, Random, Scanner, and date/time utilities.

Import: import java.util.*; | Docs: Oracle JavaDoc

📋 Classes, Methods & Constants

NameSignatureDescription
ArrayListclass ArrayList<E> implements List<E>Resizable array — O(1) random access
list.addboolean add(E e)Append element to end
list.getE get(int index)Get element at index
list.sizeint size()Return number of elements
list.removeE remove(int index)Remove element at index
list.containsboolean contains(Object o)True if list contains o
list.sortvoid sort(Comparator<? super E> c)Sort list (pass null for natural order)
Collections.sortstatic <T> void sort(List<T> list)Sort list using natural ordering
Collections.shufflestatic void shuffle(List<?> list)Randomly shuffle list
Collections.reversestatic void reverse(List<?> list)Reverse list in place
Collections.maxstatic <T> T max(Collection<? extends T> coll)Return maximum element
HashMapclass HashMap<K,V> implements Map<K,V>Hash table key-value store — O(1) average
map.putV put(K key, V value)Associate key with value
map.getV get(Object key)Return value for key, or null
map.getOrDefaultV getOrDefault(Object key, V defaultValue)Return value or default if absent (Java 8+)
map.containsKeyboolean containsKey(Object key)True if map contains key
map.removeV remove(Object key)Remove key-value pair
map.entrySetSet<Map.Entry<K,V>> entrySet()Return set of key-value pairs for iteration
map.keySetSet<K> keySet()Return set of all keys
LinkedListclass LinkedList<E>Doubly linked list — O(1) insert/delete at ends
TreeMapclass TreeMap<K,V>Sorted map (red-black tree) — O(log n)
HashSetclass HashSet<E>Unordered set — O(1) add/contains
TreeSetclass TreeSet<E>Sorted set — O(log n)
Optionalclass Optional<T>Container that may or may not hold a value (Java 8+)
Optional.ofstatic <T> Optional<T> of(T value)Create non-empty Optional
Optional.emptystatic <T> Optional<T> empty()Create empty Optional
Optional.ofNullablestatic <T> Optional<T> ofNullable(T value)Create Optional (null becomes empty)
opt.isPresentboolean isPresent()True if value is present
opt.getT get()Return value (throws if empty)
opt.orElseT orElse(T other)Return value or other if empty
Scannerclass ScannerSimple text scanner for parsing primitives and strings
scanner.nextIntint nextInt()Read next int from input
scanner.nextLineString nextLine()Read entire line
scanner.nextDoubledouble nextDouble()Read next double
scanner.hasNextLineboolean hasNextLine()True if more input lines exist
Randomclass RandomPseudo-random number generator
random.nextIntint nextInt(int bound)Return random int in [0, bound)
random.nextDoubledouble nextDouble()Return random double in [0.0, 1.0)

💡 Example Program

Save as ClassName.java (matching the public class name), compile with javac ClassName.java, run with java ClassName.

import java.util.*;
import java.util.stream.Collectors;

public class JavaUtilDemo {
    public static void main(String[] args) {
        // --- ArrayList ---
        List<String> fruits = new ArrayList<>(Arrays.asList(
            "banana", "apple", "cherry", "date", "elderberry"));
        Collections.sort(fruits);
        System.out.println("Sorted: " + fruits);
        fruits.removeIf(f -> f.length() > 5);
        System.out.println("Short names: " + fruits);

        // --- HashMap: word frequency ---
        String text = "go java go python java go rust java";
        Map<String, Integer> freq = new HashMap<>();
        for (String word : text.split(" "))
            freq.merge(word, 1, Integer::sum);
        freq.entrySet().stream()
            .sorted(Map.Entry.<String,Integer>comparingByValue().reversed())
            .forEach(e -> System.out.printf("  %-10s %d%n", e.getKey(), e.getValue()));

        // --- Optional ---
        Optional<String> opt = freq.keySet().stream()
            .filter(k -> k.startsWith("j"))
            .findFirst();
        System.out.println("First 'j' lang: " + opt.orElse("none"));

        // --- Scanner from String ---
        Scanner sc = new Scanner("42 3.14 hello world");
        System.out.println("int: "    + sc.nextInt());
        System.out.println("double: " + sc.nextDouble());
        System.out.println("words: "  + sc.next() + " " + sc.next());

        // --- Random ---
        Random rng = new Random(42);
        System.out.print("Random ints: ");
        for (int i = 0; i < 5; i++)
            System.out.print(rng.nextInt(100) + " ");
        System.out.println();
    }
}
// javac JavaUtilDemo.java && java JavaUtilDemo

← java.lang  |  🏠 Index  |  java.io →