abaac 输出 a(3) b(1) c(1)出现次数

package day12;

import java.util.Comparator;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

/**
 * abaac 输出 a(3) b(1) c(1)
 * @author Administrator
 *
 */
public class Test {
    public static void main(String[] args) {
        String str = "aaaabbbccccc";
        run(str);
    }

    private static void run(String str) {
        char[] c = str.toCharArray();
        String s = "";
        TreeMap<String, Integer> tm = new TreeMap<String, Integer>();
        for (int i = 0; i < c.length; i++) {
            if (!s.contains(String.valueOf(c[i]))) {
                s += c[i];
                tm.put(String.valueOf(c[i]), 1);
            } else {
                int value = tm.get(String.valueOf(c[i])) + 1;
                tm.put(String.valueOf(c[i]), value);
            }
        }
        Set<Entry<String, Integer>> entrys = tm.entrySet();
        TreeSet<Entry<String, Integer>> ts = new TreeSet<Entry<String, Integer>>(
                new Comparator<Entry<String, Integer>>() {
                    @Override
                    public int compare(Entry<String, Integer> e1,
                            Entry<String, Integer> e2) {
                        int num = e1.getValue() - e2.getValue();
                        if (num != 0) {
                            return -num;
                        }
                        return e1.getKey().compareTo(e2.getKey());
                    }
        });
        for (Entry<String, Integer> entry : entrys) {
            ts.add(entry);
        }
        for (Entry<String, Integer> entry : ts) {
            System.out.println(entry.getKey() + "=====" + entry.getValue());
        }
    }
}

找出一个整数数组{2,4,1,4,3,2,4,3,2}出现次数最多的数。

package test;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;

public class Test{
    public static void main(String[] args) {
        int[] target = { 2, 4, 1, 4, 3, 2, 4, 3, 2 };
        TreeSet<Integer> ts = new TreeSet<Integer>();
        Arrays.sort(target);
        TreeMap<Integer, Integer> tm = new TreeMap<Integer, Integer>();
        for (int i = 0; i < target.length; i++) {
            if (!ts.contains(target[i])) {
                tm.put(target[i], 1);
                ts.add(target[i]);
            } else {
                tm.put(target[i], tm.get(target[i]) + 1);
            }
        }
        Set<Entry<Integer, Integer>> s = tm.entrySet();
        TreeSet<Entry<Integer, Integer>> tsN = new TreeSet<Map.Entry<Integer, Integer>>(
                new Comparator<Entry<Integer, Integer>>() {

                    @Override
                    public int compare(Entry<Integer, Integer> o1,
                            Entry<Integer, Integer> o2) {
                        int num = o1.getValue() - o2.getValue();
                        if (num != 0) {
                            return -num;
                        }
                        return o1.getKey() - o2.getKey();
                    }
                });
        for(Entry<Integer, Integer> en:s){
            tsN.add(en);
        }
        int pos = 0;
        for (Entry<Integer, Integer> entry : tsN) {
            if (entry.getValue() >= pos) {
                pos = entry.getValue();
            }
            if (entry.getValue() < pos) {
                break;
            }
            System.out.println(entry.getKey() + "=====" + entry.getValue());
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值