Write a program to count the total number of duplicated entries in a List.
For Example :
Input List of countries : japan,usa,uae,japan,uae,usa,australia
Expected output:
japan:2
usa:2
uae:2
australia:1
Solutions:
Solution 1:
1) Java API provides a class called Collections. This class contains static utility methods for manipulating collections. It provides a static method for counting the number of elements in specified collection, as you can see below for more information.
Solution 2:
For Example :
Input List of countries : japan,usa,uae,japan,uae,usa,australia
Expected output:
japan:2
usa:2
uae:2
australia:1
Solutions:
Solution 1:
1) Java API provides a class called Collections. This class contains static utility methods for manipulating collections. It provides a static method for counting the number of elements in specified collection, as you can see below for more information.
static int | frequency(Collection<?> c, Object o) Returns the number of elements in the specified collection equal to the specified object. c - the collection in which to determine the frequency of o o - the object whose frequency is to be determined |
// CountDuplicates.java import java.util.Arrays; import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; public class CountDuplicates { public static void main(String[] args) { String[] listOfArray = { "japan", "usa", "uae", "japan", "uae", "usa", "australia" }; List list = Arrays.asList(listOfArray); System.out.println("Frequency of each country "); Set uniqueSet = new LinkedHashSet(list); for (String countryName : uniqueSet) { System.out.println(countryName + ": " + Collections.frequency(list, countryName)); } } } //Output:: //Frequency of each country //japan: 2 //usa: 2 //uae: 2 //australia: 1
Solution 2:
// CountDuplicates1.java import java.util.LinkedHashMap; import java.util.Map.Entry; import java.util.Map; public class CountDuplicates1 { public static void main(String[] args) { String[] listOfArray = { "japan", "usa", "uae", "japan", "uae", "usa", "australia" }; Map<String, Integer> map = new LinkedHashMap<String,Integer>(); for( String countryName : listOfArray){ int count = 0; if(map.get(countryName) != null){ count = map.get(countryName); } map.put(countryName, count+1); } for (Entry countryEntry : map.entrySet()) { System.out.println(countryEntry.getKey()+ ": " + countryEntry.getValue() ); } } } //Output:: //Frequency of each country //japan: 2 //usa: 2 //uae: 2 //australia: 1
No comments:
Post a Comment