日期:2014-05-20  浏览次数:20769 次

list中如何判断相同值的个数?
比如说一个list,里面是1,1,2,2,3,3,3,4,4
如何得到1有2个,2有2个,3有3个,4有2个?

------解决方案--------------------
Java code


package com.java.others;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * 计算字符串的字符出现的次数
 * @author lichaoever
 *
 */
public class getCount {

    List<String> list = new ArrayList<String>();
    Scanner s = new Scanner(System.in);
    public getCount() {
        System.out.println("请输入字符:");
        this.count(s.nextLine());
    }
    private void count(String str)
    {
        char[] c = str.toCharArray();
        for(char s : c)
        {
            list.add(String.valueOf(s));
        }
        Collections.sort(list);
        
        for(String s : list)
        {
            int begin = list.indexOf(s);
            int end = list.lastIndexOf(s);
            
            System.out.println("字母'"+ s + "'有:"+(end - begin + 1)+"个");
        }
    }
    public static void main(String[] args) {
        new getCount();
    }
}

------解决方案--------------------
Java code

   import java.util.ArrayList;
import java.util.List;

public class B {

    public static void main(String[] args) {
        List<Integer> list = initData();
        int x = list.size();
        while(list.size()!=0){
            List<Integer> arr =  list;
            Integer obj = list.get(0);
            List<Integer> l1 = new ArrayList<Integer>();
            l1.add(obj);
            arr.removeAll(l1);
            
            System.out.println(obj+"出现"+(x-arr.size())+"次");
            x = arr.size();
        }
    }
    
    public static List<Integer> initData(){
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(3);
        list.add(3);
        list.add(4);
        list.add(4);
        return list;
    }

}