package com.oracle.test;
import org.testng.annotations.Test;
import java.util.*;
class CharacterInfo {
private String character;
private int count;
public String getCharacter() {
return character;
}
public void setCharacter(String character) {
this.character = character;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
public class MaxCharacterTest {
CharacterInfo getMaxCharacters(String [] characters) {
if(characters.length == 0) return null;
HashMap res = new HashMap<>();
for(String s: characters) {
if(res.containsKey(s)) {
res.put(s,res.get(s)+1);
}else {
res.put(s,1);
}
}
List> list = new ArrayList>(res.entrySet());
list.stream().sorted(new Comparator>() {
@Override
public int compare(Map.Entry o1, Map.Entry o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
CharacterInfo info = new CharacterInfo();
info.setCharacter(list.get(0).getKey());
info.setCount(list.get(0).getValue());
return info;
}
@Test
void testMaxCharacters() {
String [] characters = {"CC",
"CC",
"CC",
"CC",
"AA",
"BB",
"CC",
"DD",
"CC",
"EE",
"CC",
"BB",
"CC"};
CharacterInfo info = getMaxCharacters(characters);
if(info!=null) {
System.out.println("出現次數最大的字元是:" + info.getCharacter() + "," + "出現次數是:" + info.getCount());
}else {
System.out.println("輸入為空,請檢查輸入!!");
}
}
}
程式輸出:
出現次數最大的字元是:CC,出現次數是:8