জাভাতে একটি সিকোয়েন্সে দ্বিতীয় সর্বাধিক পুনরাবৃত্ত শব্দ বের করার কোড নিচে দেওয়া হলো:
উদাহরণ
import java.util.*; public class Demo{ static String second_repeated(Vector<String> my_seq){ HashMap <String, Integer> my_map = new HashMap<String,Integer>(my_seq.size()){ @Override public Integer get(Object key){ return containsKey(key) ? super.get(key) : 0; } }; for (int i = 0; i < my_seq.size(); i++) my_map.put(my_seq.get(i), my_map.get(my_seq.get(i))+1); int first_val = Integer.MIN_VALUE; int sec_val = Integer.MIN_VALUE; Iterator<Map.Entry<String, Integer>> my_iter = my_map.entrySet().iterator(); while (my_iter.hasNext()){ Map.Entry<String, Integer> ent = my_iter.next(); int v = ent.getValue(); if( v > first_val){ sec_val = first_val; first_val = v; } else if (v > sec_val && v != first_val) sec_val = v; } my_iter = my_map.entrySet().iterator(); while (my_iter.hasNext()){ Map.Entry<String, Integer> ent = my_iter.next(); int v = ent.getValue(); if (v == sec_val) return ent.getKey(); } return null; } public static void main(String[] args){ String arr[] = {"This", "sample", "only", "anything", "sample", "from", "sample","only"}; List<String> my_seq = Arrays.asList(arr); System.out.println("The second most repeated word in the sequence is : "); System.out.println(second_repeated(new Vector<>(my_seq))); } }আউটপুট
The second most repeated word in the sequence is : Only
Demo নামক একটি ক্লাসে 'second_repeated' ফাংশন থাকে যা একটি হ্যাশ ম্যাপ তৈরি করে এবং 'get' ফাংশন ওভাররাইড করে যা হ্যাশ ম্যাপে একটি নির্দিষ্ট ভ্যালুর কী রিটার্ন করে। একটি ইটারেটর তৈরি করা হয়েছে এবং 'hasNext' ফাংশন ব্যবহার করে পরবর্তী এলিমেন্টগুলো ইটেরেট করা হয়েছে।
ইটারেটরটি চেক করে শব্দগুলো কতবার রিপিট হয়েছে এবং সবচেয়ে বেশি বার রিপিট হওয়া প্রথম শব্দটি খুঁজে বের করে সংরক্ষণ করে। আবার একই অ্যাকশন করা হয়েছে যা দ্বিতীয় সর্বাধিক রিপিট হওয়া শব্দটি দেবে। main ক্লাসে একটি স্ট্রিং অ্যারে এবং একটি লিস্ট থাকে। এই স্ট্রিং অ্যারেটিকে একটি লিস্টে রূপান্তর করা হয়েছে। 'second_repeated' ফাংশনটি এই নতুন লিস্টে কল করা হয়েছে এবং প্রাসঙ্গিক আউটপুট কনসোলে দেখানো হয়েছে।