Java Online Compiler
Example: List Equality Using Frequency Maps in Java
C
C++
C#
Java
Python
PHP
Main.java
STDIN
Run
// List Equality Using Frequency Maps import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; // Main class containing the entry point of the program public class Main { /** * Helper method to create a frequency map for a given list. * @param list The list to create a frequency map from. * @return A map where keys are list elements and values are their counts. */ private static <T> Map<T, Integer> createFrequencyMap(List<T> list) { Map<T, Integer> frequencyMap = new HashMap<>(); for (T item : list) { frequencyMap.put(item, frequencyMap.getOrDefault(item, 0) + 1); } return frequencyMap; } public static void main(String[] args) { // Step 1: Create lists with varying elements and duplicates List<String> listX = new ArrayList<>(Arrays.asList("A", "B", "A", "C")); List<String> listY = new ArrayList<>(Arrays.asList("A", "C", "B", "A")); List<String> listZ = new ArrayList<>(Arrays.asList("A", "B", "C")); // Fewer duplicates List<String> listW = new ArrayList<>(Arrays.asList("A", "B", "A", "D")); // Different element System.out.println("Original listX: " + listX); System.out.println("Original listY: " + listY); System.out.println("Original listZ: " + listZ); System.out.println("Original listW: " + listW); // Step 2: Create frequency maps for each list Map<String, Integer> freqMapX = createFrequencyMap(listX); Map<String, Integer> freqMapY = createFrequencyMap(listY); Map<String, Integer> freqMapZ = createFrequencyMap(listZ); Map<String, Integer> freqMapW = createFrequencyMap(listW); System.out.println("\nFrequency Map for listX: " + freqMapX); System.out.println("Frequency Map for listY: " + freqMapY); System.out.println("Frequency Map for listZ: " + freqMapZ); System.out.println("Frequency Map for listW: " + freqMapW); // Step 3: Compare the frequency maps using Map.equals() boolean areEqualXAndY = freqMapX.equals(freqMapY); boolean areEqualXAndZ = freqMapX.equals(freqMapZ); boolean areEqualXAndW = freqMapX.equals(freqMapW); System.out.println("\nAre listX and listY equal (using frequency maps)? " + areEqualXAndY); System.out.println("Are listX and listZ equal (using frequency maps)? " + areEqualXAndZ); System.out.println("Are listX and listW equal (using frequency maps)? " + areEqualXAndW); } }
Output
Clear
ADVERTISEMENTS