int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};怎么样知道这个数组中不同的元素的个数。

解决方案 »

  1.   


    int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(a[0])
    for(int i=1;i<a.length;i++){
        if(!list.contain(a[i]){
            list.add(a[i]);
        }
    }
    System.out.println("不同元素的个数为:"+list.size());
      

  2.   

    package com.imtiax.io;import java.util.Arrays;public class Num { public static void main(String[] args) {

    int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};
    Arrays.sort(a);

    int n = 1;
    for(int i = 0; i < (a.length - 1); i++) {
    if (a[i] != a[i+1])
    n++;
    }
    System.out.println(n);
    }}
      

  3.   

    import   java.util.*;
      class   Test{
          public   static   void   main(String[]   args){
            int[] a = {1,2,4,5,3,1,54,23,2,1,4,2};
            int Count=0;
            for (int i=0;i<a.length;i++){
              boolean exitsFlag=false; // false表示没有重复            
              for (int j=0;j<i;j++)
              {
                 if(a[i]==a[j])
                 {
                   exitsFlag=true;  // true表示有重复
                   break;
                 }
              }
              if(!exitsFlag){
                Count++;
              }                
          }
          System.out.print("数组中不同的元素的个数:"+Integer.toString(Count));
      }
    }/**
     数组中不同的元素的个数:7
     **/
      

  4.   

    sort
    然后detect phase change即可。
    整数的话,连sort都是O(N)的,所以就是O(N)的算法。
      

  5.   

    简单的方法,放入一个Set<Integer>的集合里面,最后得到的就是不重复的数据了1楼的方法改进一下就行了
    Set<Integer> set = new HashSet<Integer>();
    .. 然后把全部数据都放进去
      

  6.   


    无语了,API运用的非常妙啊