天天看點

java 統計出現次數_統計出現次數最大的字元(Java代碼)

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