A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孟茹 中级黑马   /  2014-2-16 11:39  /  1690 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组去重
例如:
原始数组是{4,2,4,6,1,2,4,7,8}
得到结果{4,2,6,1,7,8}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

8 个回复

倒序浏览
    //去除数组中重复的记录  
    public static String[] array_unique(String[] a) {         
        List<String> list = new LinkedList<String>();  
        for(int i = 0; i < a.length; i++) {  
            if(!list.contains(a[i])) {  
                list.add(a[i]);  
            }  
        }  
        return (String[])list.toArray(new String[list.size()]);  
    }  

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 云行水边 于 2014-2-16 13:12 编辑

完整代码:
  1. package com.itheima;

  2. import java.util.ArrayList;
  3. import java.util.List;

  4. public class Diary2 {

  5.         /**
  6.          * @author M.change(http://wanyan1991.blog.163.com/我的博客  请关注   嘿嘿(云行水边))
  7.          * @param args
  8.          */
  9.         public static void main(String[] args) {

  10.                 int [] data = {4,2,4,6,1,2,4,7,8};  
  11.         for (int elementA:data ) {  
  12.             System.out.print(elementA + " ");  
  13.         }  
  14.         List list = new ArrayList();  
  15.         for (int i=0; i<data.length; i++) {  
  16.             if(!list.contains(data[i])) {  
  17.                 list.add(data[i]);  
  18.             }  
  19.         }
  20.                 System.out.println();  
  21.                 //list.toArray();
  22.                 for (Object elementB:list.toArray() ) {  
  23.            System.out.print(elementB + " ");  
  24.         }  
  25.         System.out.println();
  26.         }

  27. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
结果
  1. 4 2 4 6 1 2 4 7 8
  2. 4 2 6 1 7 8
复制代码
回复 使用道具 举报
解题思路是:
定义两个数组,一个装原数组,一个装重组后的数组,后边这个数组都默认为0
然后两个for循环,把数组中出现的数赋给第二个数组,然后输出第二个数组就行了
回复 使用道具 举报 1 0
他们的都是使用集合,集合的比较简单了。我写了一个数组版的,你可以参阅下:
  1. package itheima.test;
  2. /*数组去重!数组版!
  3. *
  4. * 原始数组是{4,2,4,6,1,2,4,7,8}
  5. 得到结果{4,2,6,1,7,8}*/
  6. public class ArrayToHeavy {
  7.         public static void main(String[] args){
  8.                 int[] oldarray = new int[]{4,2,4,6,1,2,4,7,8};
  9.                 int[] newarray = new int[oldarray.length];
  10.                 System.out.println("旧数组:{4,2,4,6,1,2,4,7,8}");
  11.                 int index = 0;boolean flag = true;
  12.                 for(int i=0;i<oldarray.length;i++){
  13.                         for(int j=0;j<index+1;j++){
  14.                                 if(oldarray[i]==newarray[j]){
  15.                                         flag = false;
  16.                                 }
  17.                         }if(flag){
  18.                                 newarray[index]=oldarray[i];
  19.                                 index++;
  20.                         }flag=true;
  21.                 }
  22.                 System.out.print("新数组:{");               
  23.                 for(int i=0;i<index;i++){
  24.                         System.out.print(newarray[i]+",");
  25.                 }System.out.print("}");
  26.         }
  27. }
复制代码




评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
来学习。。。。。。。。。
回复 使用道具 举报
这个很简单的,使用集合判断即可。

代码如下(为了结果好看,里面有很多废话):
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class JiShuFen15 {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  int[] arr={4,2,4,6,1,2,4,7,8};
  System.out.print("原数组:"+"\r\n"+"{");
  for(int i=0;i<arr.length;i++){
   if(i==arr.length-1){
    System.out.print(arr[i]);
   }
   else{   
    System.out.print(arr[i]+",");
   }
  }
  System.out.print("}");
  
  
  List l=new ArrayList();
  for(int j=0;j<arr.length;j++){
   if(!l.contains(arr[j])){
    l.add(arr[j]);
   }
  }
  
  System.out.println("\r\n"+"去重之后的数组:");  
  Object[] obj=l.toArray();
  System.out.print("{");
  for(int n=0;n<obj.length;n++){
   if(n==obj.length-1){
    System.out.print(obj[n]);
   }
   else{
    System.out.print(obj[n]+",");
   }
  }
  System.out.print("}");
}
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;

  4. public class newArr {

  5.         public static void main(String[] args) {
  6.                
  7.                 Object[] arr={4,2,4,6,1,2,4,7,8};
  8.                 List<Object> al=Arrays.asList(arr);
  9.                 getSimply(al);
  10.                
  11.                
  12.                
  13.                

  14.         }
  15.         public static<T> void getSimply(List<T> al)
  16.         {
  17.                 List<T> list=new ArrayList<T>();//定义一个新的数组
  18.                 for(T t:al)
  19.                 {
  20.                         if(!list.contains(t))//判断新的集合中是否已经有了该元素
  21.                                 list.add(t);//有就加
  22.                 }
  23.                 Object[] arr=list.toArray();//这步可要可不要,也可以直接迭代集合
  24.                 for(int x=0;x<arr.length;x++)
  25.                 {
  26.                         System.out.println(arr[x]);
  27.                 }
  28.                
  29.                
  30.         }
  31. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马