Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,911 questions

51,843 answers

573 users

How to remove duplicate sublists from a multi-dimensional array of lists in Java

1 Answer

0 votes
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]

*/

 



answered Apr 7, 2025 by avibootz
...