String[] strArr={"a","d","b","d","c","c"}数组,再生成一个新数组,要求新数组中没有以前数组中相同的元素。

解决方案 »

  1.   

    给你写一个 ,效率一般。如果数组要以前顺序 就用 linkedhashset代替      String[] strArr = { "a", "d", "b", "d", "c", "c" };        Set set = new HashSet();
            for (int i = 0; i < strArr.length; i++)
            {
                if (!set.add(strArr[i]))
                {
                    set.remove(strArr[i]);
                }
            }
            String[] temp = new String[set.size()];
            int i = 0;
            for (Iterator it = set.iterator(); it.hasNext(); i++)
            {
                temp[i] = (String) it.next();
            }
            System.out.println(java.util.Arrays.toString(temp));
      

  2.   

    这样更好        String[] strArr = { "a", "d", "b", "d", "c", "c" };        Set set = new LinkedHashSet();
            for (int i = 0; i < strArr.length; i++)
            {
                if (!set.add(strArr[i]))
                {
                    set.remove(strArr[i]);
                }
            }
            String[] temp = (String[]) set.toArray(new String[set.size()]);
            
            System.out.println(java.util.Arrays.toString(temp));
      

  3.   

    new HashSet(Arrays.asList(strArr)).toArray();
      

  4.   


        static void rearrange(String a[]){
         Set set=new HashSet();
         for(int i=0;i<a.length;i++){
         set.add(a[i]);
         }
         String s[]=(String[])set.toArray();
         for(int i=0;i<s.length;i++){
         System.out.println(s[i]);
         }
        }