java如何在一个整型数组里取相同的元素

解决方案 »

  1.   

    最原始的办法写个FOR循环再嵌套一个FOR循环一个一个判断
      

  2.   

    import java.util.ArrayList;
    import java.util.List;public class TestNumber { /**
     * @param args
     */
    public static void main(String[] args) {
    Integer[] numbers = {1,2,4,3,5,22,2,8,1,3,3,7,5,5};
    List<Integer>  list = new ArrayList<Integer>();
    for(int i =0;i<numbers.length;i++){
    for(int j=numbers.length-1;j>i;j--){
    if(numbers[j]== numbers[i] && list.contains(numbers[j]) == false)
    list.add(numbers[i]);

    }
    }
       Object[] objects =  list.toArray();
       Integer[] numbers2 =new Integer[objects.length];
       for(int i = 0;i<objects.length;i++){
       numbers2[i] = (Integer) objects[i];
       System.out.print(numbers2[i]+"\t");
       }
       
        }}
    运行以上代码输出的为数组里相同的元素
      

  3.   

    Integer[] numbers = {1,2,4,3,5,22,2,8,1,3,3,7,5,5};
    Map<Integer,Integer> map = new HashMap<Integer,Integer>();
    List<Integer> list = new ArrayList<Integer>();map.put(numbers[0],numbers[0]);
    for(int i =1;i<numbers.length;i++){
       if (map.containsKey(numbers[i])) {
           continue;
       }   map.put(numbers[i],numbers[i]);   for(int j =i+1; j<numbers.length;j++){
          if (map.containsKey(numbers[j])) {
              list.add(numbers[i]);
              break;
          }
       }
    }list里的就是数组里相同的元素
      

  4.   

    回复5楼,我运行list里怎么不是相同的元素呢
      

  5.   

        int nums[] = {6,3,5,9,9,2};
        Map<String,Integer>map = new Map<String,Integer>();
        for(int i=0;i<nums.length;i++){
           Integer temp = map.get(nums[i]+"");
           if(temp == null){
                map.put(nums[i]+"",new Integer(1));
            }else{
                map.put(nums[i]+"",new Integer(temp + 1));
            }
        }
        最后判断map里面 值大于1  就说明有重复。。
    以上代码手写,没测试过。
      

  6.   


    int nums[] = {6,3,5,9,9,2,2};
        Map map = new HashMap<String,Integer>();
        for(int i=0;i<nums.length;i++){
          if(map.containsKey(nums[i])){
            System.out.println("该数字应经重复了"+nums[i]);
          }
       else{
         map.put(nums[i],"");
       }
        }
    该数字应经重复了9
    该数字应经重复了2