ในการค้นหาคำที่ซ้ำกันมากเป็นอันดับสองในลำดับใน Java โค้ดจะเป็นดังนี้ −
ตัวอย่าง
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' ที่สร้าง hash map และแทนที่ฟังก์ชัน 'get' ที่คืนค่าคีย์ของค่าเฉพาะใน hash map มีการสร้างตัววนซ้ำและองค์ประกอบที่ตามมาจะถูกทำซ้ำโดยใช้ฟังก์ชัน 'hasNext'
ตัววนซ้ำจะตรวจสอบเพื่อดูจำนวนครั้งที่มีการทำซ้ำคำ และพบและจัดเก็บคำแรกที่ซ้ำเป็นจำนวนสูงสุด อีกครั้งการดำเนินการจะดำเนินการที่จะ
ให้คำที่ซ้ำกันมากที่สุดเป็นอันดับสอง คลาสหลักประกอบด้วยอาร์เรย์สตริงและรายการ อาร์เรย์สตริงนี้จะถูกแปลงเป็นรายการด้วย ฟังก์ชัน 'second_repeated' ถูกเรียกใช้ในรายการใหม่นี้ และเอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล