1. Array → Collection (List/Set)
Java provides multiple ways to convert an array into a collection (usually a List
or Set
).
✅ Using Arrays.asList()
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] array = {"Java", "Python", "C++"};
// Convert to List
List<String> list = Arrays.asList(array);
System.out.println(list); // [Java, Python, C++]
// Note: This list is fixed-size (cannot add/remove)
}
}
✅ Using new ArrayList<>(Arrays.asList(...))
List<String> modifiableList = new ArrayList<>(Arrays.asList(array));
modifiableList.add("Go");
System.out.println(modifiableList); // [Java, Python, C++, Go]
✅ Using Collections.addAll()
List<String> list2 = new ArrayList<>();
Collections.addAll(list2, array);
System.out.println(list2);
✅ Convert Array → Set
Set<String> set = new HashSet<>(Arrays.asList(array));
System.out.println(set);
2. Collection → Array
Any Collection
in Java can be converted back to an array.
✅ Using toArray()
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
// Object[] array
Object[] array1 = list.toArray();
// String[] array
String[] array2 = list.toArray(new String[0]);
System.out.println(Arrays.toString(array1)); // [Java, Python, C++]
System.out.println(Arrays.toString(array2)); // [Java, Python, C++]
3. Special Case: Primitive Arrays
Reflection + Streams help when working with primitive arrays:
int[] nums = {1, 2, 3, 4};
// Convert int[] → List<Integer>
List<Integer> list = Arrays.stream(nums).boxed().toList();
// Convert List<Integer> → int[]
int[] nums2 = list.stream().mapToInt(Integer::intValue).toArray();
System.out.println(list); // [1, 2, 3, 4]
System.out.println(Arrays.toString(nums2)); // [1, 2, 3, 4]
✅ Summary
- Array → Collection
Arrays.asList(array)
(fixed size)new ArrayList<>(Arrays.asList(array))
(modifiable)Collections.addAll(list, array)
- For
Set
:new HashSet<>(Arrays.asList(array))
- Collection → Array
list.toArray()
list.toArray(new String[0])
- For primitives: use
Streams