51,407
社区成员
发帖
与我相关
我的任务
分享 String find(String data[]) {
Map<String, Integer> map = new HashMap<String, Integer>();
for (String s : data) {
if (map.containsKey(s)) {
map.put(s, map.get(s) + 1);
} else {
map.put(s, 1);
}
}
String str = null;
int t = 0;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (t < entry.getValue()) {
t = entry.getValue();
str = entry.getKey();
}
}
return str;
}
public class findbook {
public static void main(String[] args) {
String []data={"paper","cup","book","cup","pen","book"};
System.out.println(find(data));
}
static String find(String[] data){
int k1=0;
String temp = "";
for(String s:data){ //比较数组自身
int k=0; //计数
for(String t:data){
if(t.equals(s)){ //找到一次则计数+1
k++;
}
}
if(k>k1){ //若计数大于前一次计数则把该元素放入temp
temp=s;
}
}
return temp; //返回次数最多的值
}
}
新手试一下
package com.test1;
public class findBiggest {
public static void main(String[] args) {
String[] data=new String[]{"paper","cup","book","cup","pen","book"};
String A=find(data);
System.out.println(A);
}
public static String find(String data[]){
int[] nums=new int[6];//分别对应data中元素的出现次数
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length; j++) {
if (data[i]==data[j]) {//两相同数组进行比较,相同则计数+1
nums[i]++;
}
}
}
int max=nums[0];//最大值
int index=0;//最大值的下标
for (int i = 1; i < nums.length; i++) {//寻找nums[]的最大数,即最大出现次数
if (max<nums[i]) {
max=nums[i];
index=i;
}
}
return data[index];
}
}