The java.util Collections framework provides ready-to-use data structures: lists, sets, queues, and dictionaries, with the List, Set, Queue, and Map interfaces and their implementations. You program to the interface (List<String> l = new ArrayList<>()) so you can change the implementation.