| 1 | class Solution |
| 2 | { |
| 3 | String secFrequent(String arr[], int N) |
| 4 | { |
| 5 | // your code here |
| 6 | HashMap<String,Integer> map = new HashMap<>(); |
| 7 | |
| 8 | for(int i=0;i<N;i++) |
| 9 | { |
| 10 | map.put(arr[i],map.getOrDefault(arr[i],0)+1); |
| 11 | } |
| 12 | |
| 13 | int first_max = Integer.MIN_VALUE, sec_max = Integer.MIN_VALUE; |
| 14 | |
| 15 | Iterator<Map.Entry<String, Integer>> itr = map.entrySet().iterator(); |
| 16 | |
| 17 | while (itr.hasNext()) |
| 18 | { |
| 19 | Map.Entry<String, Integer> entry = itr.next(); |
| 20 | int v = entry.getValue(); |
| 21 | if( v > first_max) |
| 22 | { |
| 23 | sec_max = first_max; |
| 24 | first_max = v; |
| 25 | } |
| 26 | else if (v > sec_max && v != first_max) |
| 27 | sec_max = v; |
| 28 | } |
| 29 | |
| 30 | itr = map.entrySet().iterator(); |
| 31 | |
| 32 | while (itr.hasNext()) |
| 33 | { |
| 34 | Map.Entry<String, Integer> entry = itr.next(); |
| 35 | int v = entry.getValue(); |
| 36 | if (v == sec_max) |
| 37 | return entry.getKey(); |
| 38 | } |
| 39 | return null; |
| 40 | } |
| 41 | } |