import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class UniqueSubarrays {
// Function to remove duplicate sublists
public static List<List<String>> listUnique(List<List<String>> multilist) {
HashSet<String> uniqueSet = new HashSet<>(); // Set to store unique serialized subarrays
List<List<String>> uniqueArrayList = new ArrayList<>();
for (List<String> subList : multilist) {
// Serialize the subarray
String serialized = String.join(",", subList);
// Check if the serialized subarray is already in the set
if (!uniqueSet.contains(serialized)) {
uniqueSet.add(serialized); // Add serialized subarray to the set
uniqueArrayList.add(new ArrayList<>(subList)); // Add original subarray to the result
}
}
return uniqueArrayList;
}
public static void main(String[] args) {
List<List<String>> arraylist = new ArrayList<>();
arraylist.add(List.of("abc", "def"));
arraylist.add(List.of("ghi", "jkl"));
arraylist.add(List.of("mno", "pqr"));
arraylist.add(List.of("abc", "def"));
arraylist.add(List.of("ghi", "jkl"));
arraylist.add(List.of("mno", "pqr"));
// Get unique sublists
List<List<String>> uniqueArray = listUnique(arraylist);
for (List<String> subArray : uniqueArray) {
System.out.println(subArray);
}
}
}
/*
run:
[abc, def]
[ghi, jkl]
[mno, pqr]
*/