java如何找出一个int数组中出现次数最多 C语言找出一个数组中出现次数最多的那个元素

\u600e\u4e48\u5728\u6570\u7ec4\u4e2d\u627e\u51fa\u51fa\u73b0\u6b21\u6570\u6700\u591a\u7684\u5143\u7d20\uff08JAVA\u5b9e\u73b0\uff09

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.swing.JOptionPane;

public class Test88 {
public static void main(String[] args) {
int[] ss = { 1,3,2,5,2,5,7};
Map map = new HashMap();

for (int i = 0; i < ss.length; i++) {
int count = 0;
for (int j = 0; j < ss.length; j++) {
if (ss[i] == (ss[j])) {
count = count + 1;
}
}
// \u4e3a\u4e86\u4e0d\u6253\u5370\u91cd\u590d\u7684\uff0c\u653e\u5165map\u4e2d\u53bb\u6389\u91cd\u590d\u7684
map.put(ss[i], count);
}

// \u904d\u5386map\uff0c\u6253\u5370\u5305\u542b\u7684\u6570\u5b57\u548c\u4e2a\u6570
Set key = map.keySet();
int k = key.size();
int ii[] = new int[k];// \u5b58\u653e\u51fa\u73b0\u6b21\u6570\u6700\u591a\u7684
k = 0;
int temp = 0;// \u6bd4\u8f83\u7684\u65f6\u5019\u7684\u4e2d\u95f4\u91cf
int temp2 = 0;
for (Iterator iterator = key.iterator(); iterator.hasNext();) {
int name = Integer.parseInt(iterator.next().toString());
int count2 = Integer.parseInt(map.get(name).toString());
if (temp < count2) {
temp = count2;


}
System.out.println(name + "\u51fa\u73b0 " + count2 + " \u6b21");
}

for (Iterator iterator = key.iterator(); iterator.hasNext();) {
int name = Integer.parseInt(iterator.next().toString());
int count2 = Integer.parseInt(map.get(name).toString());
if (temp == count2) {
ii[k]=name;
k++;
}
}





System.out.print("\u51fa\u73b0\u6700\u591a\u7684\u662f:");
for (int i = 0; i < ii.length; i++) {
if (ii[i] != 0) {
System.out.print(ii[i] + " ");
}

}
}
}

\u6570\u7ec4\u7684\u6570\u5b57\u53ef\u4ee5\u968f\u610f\u586b\u5199,\u5176\u4e2d\u7b2c\u4e00\u6b21for\u7684\u904d\u5386\u662f\u5f97\u5230\u51fa\u73b0\u7684\u6570\u5b57\u6700\u591a\u7684\u6b21\u6570,\u7b2c2\u6b21for\u7684\u904d\u5386\u662f\u548c\u8fd9\u4e2a\u6b21\u6570\u6bd4\u8f83,\u56e0\u4e3a\u5df2\u7ecf\u662f\u6700\u591a\u7684\u4e86,\u6240\u4ee5\u53ea\u8981\u548c\u8fd9\u4e2a\u76f8\u7b49,\u90a3\u4e2a\u5143\u7d20\u4e5f\u5c31\u662f\u51fa\u73b0\u6700\u591a\u7684\u4e86,\u5373\u4f7f\u6709\u51fa\u73b0\u6b21\u6570\u540c\u6837\u6700\u591a\u7684\u4e5f\u53ef\u4ee5\u4fdd\u5b58

#include
int main()
{
int n,i,j,k,t,m,a[25];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;//\u5148\u8fdb\u884c\u6392\u5e8f\uff0c\u6309\u4ece\u5c0f\u5230\u5927\u7684\u987a\u5e8f\u4f9d\u6b21\u6392\u5217\uff0c\u6392\u5217\u987b\u5f15\u5165\u4e2d\u95f4\u91cft\u3002
}
}
}
t=a[0];
m=1;
k=1; //t\u8bb0\u5f55\u5f53\u524d\u51fa\u73b0\u6b21\u6570\u6700\u591a\u7684\u6570\uff0cm\u8bb0\u5f55t\u51fa\u73b0\u7684\u6b21\u6570\uff0ck\u8bb0\u5f55\u5f53\u524d\u6570\u51fa\u73b0\u7684\u6b21\u6570\uff0c
for(i=1;i<n;i++)
{
if(a[i]!=a[i-1])//\u5982\u679c\u524d\u540e\u4e24\u6570\u4e0d\u76f8\u7b49\u4e86
{
if(k>m)//\u53ea\u51fa\u73b0\u4e00\u904d\u5219\u4e0d\u4f1a\u6709k>m\uff0c\u7531\u4e8em\u4e0d\u65ad\u66f4\u65b0\uff0c\u503c\u4f1a\u53d8\u5927\uff0c\u6240\u4ee5\u4e0d\u4e00\u5b9a\u4f1a\u6709k>m\u53cd\u590d
{
m=k;//\u5982\u679ck>m\u4e86\uff0cm\u53d8\u5927\uff0c\u4fdd\u8bc1m\u662f\u51fa\u73b0\u6b21\u6570\u6700\u591a\u7684\u6570\u7684\u6b21\u6570
t=a[i-1];//m\u7531k\u8d4b\u503c\uff0ck\u4ee3\u8868\u7684\u662fa\u3010i-1\u3011
}
k=1;//\u65b0\u7684\u6570\u5b57k\u91cd\u65b0\u53d8\u4e3a1\uff0c\u518d\u5faa\u73af\uff0c\u4e0d\u7136k\u4f1a\u4e00\u76f4\u53d8\u5927\uff0c\u4f7f\u5f97m\u4e5f\u6539\u53d8
}
else
k++;//\u524d\u540e\u4e24\u6570\u76f8\u7b49\uff0ck\u5373\u6b21\u6570\u589e\u52a0
}
if(k>m)//\u5faa\u73af\u6700\u540e\u8fdb\u884c\u66f4\u65b0\uff0c\u4e0d\u7136\u5982\u679c\u6700\u540e\u4e00\u9879\u6b21\u6570\u6700\u591a\uff0c\u65e0\u6cd5\u8f93\u51fa\u6700\u540e\u4e00\u9879
{
m=k;
t=a[i-1];
}
printf("%d\n",t);
}
return 0;
}

\u6269\u5c55\u8d44\u6599\uff1a
\u6570\u7ec4\u4f7f\u7528\u89c4\u5219\uff1a
1.\u53ef\u4ee5\u53ea\u7ed9\u90e8\u5206\u5143\u7d20\u8d4b\u521d\u503c\u3002\u5f53{ }\u4e2d\u503c\u7684\u4e2a\u6570\u5c11\u4e8e\u5143\u7d20\u4e2a\u6570\u65f6\uff0c\u53ea\u7ed9\u524d\u9762\u90e8\u5206\u5143\u7d20\u8d4b\u503c\u3002\u4f8b\u5982\uff1astatic int a[10]={0,1,2,3,4};\u8868\u793a\u53ea\u7ed9a[0]\uff5ea[4]5\u4e2a\u5143\u7d20\u8d4b\u503c\uff0c\u800c\u540e5\u4e2a\u5143\u7d20\u81ea\u52a8\u8d4b0\u503c\u3002
2.\u53ea\u80fd\u7ed9\u5143\u7d20\u9010\u4e2a\u8d4b\u503c\uff0c\u4e0d\u80fd\u7ed9\u6570\u7ec4\u6574\u4f53\u8d4b\u503c\u3002\u4f8b\u5982\u7ed9\u5341\u4e2a\u5143\u7d20\u5168\u90e8\u8d4b1\u503c\uff0c\u53ea\u80fd\u5199\u4e3a\uff1astatic int a[10]={1,1,1,1,1,1,1,1,1,1};\u800c\u4e0d\u80fd\u5199\u4e3a\uff1astatic int a[10]=1\u3002
3.\u5982\u4e0d\u7ed9\u53ef\u521d\u59cb\u5316\u7684\u6570\u7ec4\u8d4b\u521d\u503c\uff0c\u5219\u5168\u90e8\u5143\u7d20\u5747\u4e3a0\u503c\u3002
4.\u5982\u7ed9\u5168\u90e8\u5143\u7d20\u8d4b\u503c\uff0c\u5219\u5728\u6570\u7ec4\u8bf4\u660e\u4e2d\uff0c \u53ef\u4ee5\u4e0d\u7ed9\u51fa\u6570\u7ec4\u5143\u7d20\u7684\u4e2a\u6570\u3002\u4f8b\u5982\uff1astatic int a[5]={1,2,3,4,5};\u53ef\u5199\u4e3a\uff1astatic int a[]={1,2,3,4,5};\u52a8\u6001\u8d4b\u503c\u53ef\u4ee5\u5728\u7a0b\u5e8f\u6267\u884c\u8fc7\u7a0b\u4e2d\uff0c\u5bf9\u6570\u7ec4\u4f5c\u52a8\u6001\u8d4b\u503c\u3002\u8fd9\u65f6\u53ef\u7528\u5faa\u73af\u8bed\u53e5\u914d\u5408scanf\u51fd\u6570\u9010\u4e2a\u5bf9\u6570\u7ec4\u5143\u7d20\u8d4b\u503c\u3002
\u53c2\u8003\u8d44\u6599\uff1a
\u767e\u5ea6\u767e\u79d1-\u6570\u7ec4

其实这个问题,涉及到两个过程

  1. 首先是统计数组中数字出现的次数,应该要有类似“数字 - 出现次数”这种结果出现,其实就是Map结构的key和value

  2. 然后就是找出出现次数最大的一个,并返回对应的数字即可

针对以上两个过程,推荐采用Java8的流(Stream)来处理,代码比较简单易懂,因此下面的示例代码,请在JDK8的环境下运行

int[] arr = {1, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5};
// 过程1 Collectors.groupingBy代表是分类,按照本身Function.identity()进行分类,那相同数字就会放在一起,Collectors.counting是统计相同数字的个数
Map<Integer, Long> map = IntStream.of(arr).boxed().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println("数字出现次数统计(数字=次数):" + map);

// 过程2 max方法是根据比较器(按照map的value进行排序)找出最大值
Optional<Integer> maxOptional = map.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).map(Map.Entry::getKey);
System.out.println("出现次数最多的数字:" + maxOptional.get());

最后结果如下



import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;




public class Mytest
{
/**
* @param args
*/
public static void main(String[] args) 
{
int[] array = {2,3,1,2,2,5,6,8,2,3,2,4,2};
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < array.length; i++) 
{
if(map.containsKey(array[i]))
{
int temp = map.get(array[i]);
map.put(array[i],temp+1);
}
else
{
map.put(array[i],1);
}
}
Collection<Integer> count = map.values();

int maxCount = Collections.max(count);

int maxnum = 0;
for (Map.Entry<Integer,Integer> entry:map.entrySet())
{
if (maxCount==entry.getValue())
{
maxnum = entry.getKey();
}

}
System.out.println("出现次数最多的数字为"+maxnum);
System.out.println("改次数一共出现了"+maxCount+"次");
}
}


  • java濡備綍鎵惧嚭涓涓猧nt鏁扮粍涓嚭鐜版鏁版渶澶
    绛旓細棣栧厛鏄粺璁℃暟缁勪腑鏁板瓧鍑虹幇鐨勬鏁帮紝搴旇瑕佹湁绫讳技鈥滄暟瀛 - 鍑虹幇娆℃暟鈥濊繖绉嶇粨鏋滃嚭鐜锛屽叾瀹炲氨鏄疢ap缁撴瀯鐨刱ey鍜寁alue 鐒跺悗灏辨槸鎵惧嚭鍑虹幇娆℃暟鏈澶х殑涓涓紝骞惰繑鍥炲搴旂殑鏁板瓧鍗冲彲 閽堝浠ヤ笂涓や釜杩囩▼锛屾帹鑽愰噰鐢↗ava8鐨勬祦锛圫tream锛夋潵澶勭悊锛屼唬鐮佹瘮杈冪畝鍗曟槗鎳傦紝鍥犳涓嬮潰鐨勭ず渚嬩唬鐮侊紝璇峰湪JDK8鐨勭幆澧冧笅杩愯 int[] arr ...
  • 濡備綍鐢Java鎵惧嚭涓涓鏁存暟鏁扮粍涓渶澶х殑鍊,骞惰繑鍥炴渶澶у肩殑鏁扮粍涓嬫爣,灏ゅ叾鏄...
    绛旓細涓銆佹簮绋嬪簭涓猴細public class Test2 {public static void main(String[] args) {int [] arr={23,12,32,13,31,56,43}sort(arr);System.out.format("%d",+arr[6]);// TODO Auto-generated method stub}public static void sort(int azz[]){int t;for(int i=0;i<azz.length-1;i+...
  • 鐢Java鎵惧嚭涓涓鏁存暟鏁扮粍涓渶澶х殑鍊,骞惰繑鍥炴渶澶у肩殑鏁扮粍涓嬫爣,灏ゅ叾鏄湁...
    绛旓細private int [] x={11,2,6,9,12,7,12,1,3,12,8};private int max=x[0];for(int i=1;i<x.length;i++){ if(max<x[i]){ max=x[i]; //鑾峰緱鏈澶у } for(int j=0;j<x.length;j++){ if(x[j]==max){ //閬嶅巻瀵规瘮 System.out.println(j); //杈撳嚭鏈澶...
  • Java涓浣曟壘鍑烘暟缁涓涓涓鏁扮殑鍘熷浣嶇疆.?
    绛旓細int[] number = {18,25,7,36,13,2,89,63};//Arrays.sort(number);int min = number[0] ;int pos = 0;for(int index = 0; index < number.length; index++) { //System.out.println(number[index]);if (min > number[index]){ min = number[index] ;pos = index ;} } Sys...
  • java鎵惧嚭涓涓鏁村瀷鏁扮粍涓殑鍏冪礌鐨勬渶澶у笺傝姹:
    绛旓細//杈撳叆涓涓暣鍨嬫暟缁勶紝灏嗘暟缁勭敱澶у埌灏忔帓搴忥紝鐒跺悗鍙栨暟缁勭殑绗竴涓硷紝鍗充负鏈澶у銆俻ublic static int getMaxNum(int[] num){ int temp;for(int i=0;i<num.length-1;i++){ for(int j=0;j<num.length-i-1;j++){ if(num[j]<num[j+1]){ temp = num[j];num[j]=num[j+1];num...
  • java濡備綍杩斿洖涓涓猧nt鏁扮粍?
    绛旓細{ int []data;void Setdata(int []b){ data = b ;} public static void main(String []args){ Student st=new Student();int []a = new int[2];a[0] = 9;a[1] = 32;st.Setdata(a);System.out.println("gongzuoriqi="+ st.data[0]+ " " + st.data[1]);} } 浣 鏄...
  • ...璇风畻鍑涓涓鏈10涓厓绱犵殑int鏁扮粍褰撲腑鍚勬垚缁╃殑鎴愮哗?
    绛旓細```java // 鍒濆鍖栧垎鏁鏁扮粍 int[] avaScores = new int[5];// 鍋囪鏈50涓汉锛屽垎鍒緱鍒癆BCDEDABCEEEDCCBDE锛岄偅涔堝垎鏁版暟缁勫簲璇ユ槸杩欐牱 int[] grades = {0, 1, 2, 3, 4};int[] numbers = {3, 6, 2, 2, 1};// 璁$畻鍒嗘暟鏁扮粍 for (int i = 0; i < grades.length; i++) { ...
  • java涓浣曟煡鎵炬暟缁涓煇涓厓绱
    绛旓細//杈撳嚭淇℃伅 System.out.print("璇疯緭鍏ラ渶瑕鏌ユ壘鐨勬暟瀛楋細");//鑾峰彇閿洏杈撳叆瑕佹煡鎵剧殑鏁板瓧 int target = scanner.nextInt();//寰幆鏁扮粍 for(int i = 0; i < arr.length; i++) { //濡傛灉杈撳叆鐨勬暟瀛楄窡褰撳墠鏁扮粍鐨勫厓绱犵殑鍊肩浉鍚 if(target == arr[i]) { //杈撳叆鎵鍦ㄤ綅缃紝浠1寮濮 System.out...
  • java涓浣鑾峰彇涓涓鏈煡绫诲瀷鐨鏁扮粍鐨勯暱搴,杩欎釜鏁扮粍鍙兘鏄int,string...
    绛旓細鏁扮粍鏈夊浐瀹氱殑length灞炴э紝閫氳繃length灏卞彲浠ュ緱鐭ュ叾闀垮害銆int lengthOfArray(Object[] a) { return a.length;}
  • 鎬ユユ,姹涓涓猨ava绫荤殑,鍏充簬int鐨鏁扮粍,闅忔満鑾峰緱20涓暟,骞朵笖寰楀埌鏈澶у...
    绛旓細import java.util.Random;public class C { public static void main(String[] args) { int[] nums = new int[20];Random rand = new Random();int i = 0;while(i < 20){ nums[i++] = rand.nextInt();} int max = nums[0];for(i = 0; i < nums.length; i++){ if(nums...
  • 扩展阅读:java double强制转换int ... java同时输入两个数 ... java如何将string转为int ... java int长度 ... java int数组 ... java定义一个list数组 ... java int占几个字节数 ... java int取值范围 ... java string转int的方法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网