精华内容
下载资源
问答
  • JAVA去掉数组重复数字

    2019-10-16 17:02:14
    去掉一个已经排好序的数组重复数字,执行速度也是考虑的问题。 package JAVA_Project_01_04;//创建一个包 /* 提供两种思路解决去掉重复数字:第一种是增加一个数组,但是长度无法确定,记录没有重复的值; 第二种...

    去掉一个已经排好序的数组的重复数字,执行速度也是考虑的问题。

    package JAVA_Project_01_04;//创建一个包
    /*
    提供两种思路解决去掉重复数字:第一种是增加一个数组,但是长度无法确定,记录没有重复的值;
    第二种是增加一个数组,用于记录原数组中存在的数,再增加一个数组可以确定数组的长度,用于存放原数组的值。
     */
    public class TextDelRepeat {//操作去掉数组中重复数字的类
    
        public static int[]changeMethodOne(int src[]){//方法一  去掉重复数字
            int length=src.length;//获得传入数组的长度
            int[] taget =new int[length];//声明一个数组,长度为传入数组的长度
            int index = 0;
            taget[0]=src[0];//设置数组的初始值
            for (int i = 1; i < length; i++) {//循环遍历传入数组
                if (taget[index]!=src[i]){//遍历数组与初始值进行比较
                    index++;//等价于index=index+1
                    taget[index]=src[i];//元素赋值
                }
            }
            return taget;//返回结果数组
        }
    
        public static int[]changeMethodTwo(int src[]){//方法二  去掉重复数字
            int length =src.length;//获得传入数组的长度
            int[] tagetIndex=new int[length];//声明一个数组,长度为传入数组的长度
            int tagetLength = length;
            for (int i = 0; i < length; i++) {
                tagetIndex[i]=0;//初始化tagetIndex
            }
            for (int j = 1; j < length; j++) {//记录重复的值
                if (src[j]==src[j-1]){
                    tagetIndex[j]=1;
                    tagetLength--;
                }
            }
            int[] target =new int[tagetLength];
            int index=0;
            for (int k = 0; k < length; k++) {//循环将数组赋值
                if (tagetIndex[k]==0){//数组元素等于1是存放重复数字
                    target[index++]=src[k];
                }
            }
            return target;
        }
    
        public static void main(String[] args) {
            int[] a={1,1,1,2,3,4,5,6,9,9,12,53};//声明数组并初始化
            int[] b=changeMethodOne(a);//调用第一种方法去掉重复数字
            System.out.println("第一种方法去掉数组中重复的数字结果:");
            for (int i = 0; i < b.length; i++) {//将返回的数组输出
                System.out.println(b[i]+" ");
            }
            System.out.println();
            System.out.println("第二种方法去掉数组中重复数字结果:");
            int[] c=changeMethodTwo(a);//调用第二种方法去掉重复数字
            for (int i = 0; i < c.length; i++) {//将返回的数组输出
                System.out.println(c[i]+" ");
            }
        }
    }
    /*
    在changeMethodone()方法中,声明一个与传入数组长度相等的数组,根据循环判断是否有重复的数字,并将不重复
    的数字放入声明的数组中,如果传入数组中存在重复的数字,那么这个数组的长度应会小于传入数组的长度,这样也就造成了数组长度的浪费。
    在ChangeMothodTwo()方法中,也声明一个与传入数组长度相等的数组tagetIndex,值初始化全为0.循环进行判断重复数字的个数,如果存在重复数字则
    数组tagetIndex元素赋值为1.然后声明一个数组target,长度为(tagetIndex.length-重复数字个数)。当tagetIndex数组中元素为0的,
    将数组src元素下标等于tagetIndex元素中不为0的下标的元素赋值给target.
     */
    
    展开全文
  • java 去除数组重复数据,并取出重复数据
    /**
     * 去除重复数据
     * @author Sunqinbo
     */
    public class RemoveDuplicateData {
    	public static void main(String[] args) {
    		Integer[] a = new Integer[] { 1, 4, 5, 2, -6, 5, 9, 10, 10 };
    
    		Set<Integer> set = new HashSet<Integer>();
    		for (int i = 0; i < a.length; i++) {
    			boolean b = set.add(a[i]);
    			if (!b) {
    				System.out.println("重复数据:" + a[i] + "   索引位置:" + i);
    			}
    		}
    	}
    }

    展开全文
  • 另外注意obeject需要转化为int,且java数组并没有contains()方法。 方法二:运用Set集合 public static int[] quchong(int a[]){ Set set=new HashSet(); for(int i=0;i;i++){ set.add(a[i]); } Object...

    方法一:运用List集合

    public static int[] quchong(int a[]){
        List list=new ArrayList();
        for(int i=0;i<a.length;i++){
            if(!list.contains(a[i]))
                list.add(a[i]);
        }
        Object[] tmp=list.toArray();
        Arrays.sort(tmp);
        int[] b=new int[tmp.length];
        for(int j=0;j<tmp.length;j++){
            b[j]=Integer.parseInt(String.valueOf(tmp[j]));
        }
        return b;
    }

    另外注意obeject需要转化为int,且java数组并没有contains()方法。

    方法二:运用Set集合

    public static int[] quchong(int a[]){
            Set set=new HashSet();
            for(int i=0;i<a.length;i++){
                    set.add(a[i]);
            }
            Object[] tmp=set.toArray();
            Arrays.sort(tmp);
            int[] b=new int[tmp.length];
            for(int j=0;j<tmp.length;j++){
                b[j]=Integer.parseInt(String.valueOf(tmp[j]));
            }
            return b;
    }

     

    展开全文
  • java去除数组重复元素的四种方法

    万次阅读 2017-11-30 09:49:26
    [java] view plain copy  print? package com.yzycool.test;    import java.util.ArrayList;  import java.util.HashSet;  import java.util.Iterator;  import java.util.LinkedHashSet;
    [java] view plain copy
     print?
    1. package com.yzycool.test;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashSet;  
    5. import java.util.Iterator;  
    6. import java.util.LinkedHashSet;  
    7. import java.util.List;  
    8. import java.util.Set;  
    9.   
    10. /*去除重复的数组: 
    11.  * 方法一:需要一个存储去重后元素的数组,然后两层循环,外层遍历原数组,内容逐个判断是否和之后的元素重复,然后再提出来存入新的数组。方法System.arraycopy(被复制的数组,起始下标,接收的新数组,起始下标,结束下标);可以直接复制数组,既然这样,我就没必要纠结新数组的长度了,直接声明一个跟原数组长度一样的临时数组,只要记录下去重后的元素个数,然后就可以确定去重后数组长度再去将临时数组拷贝到新数组就行了。 
    12.  * 方法二:只需要创建一个集合,然后遍历数组逐一放入集合,只要在放入之前用contains()方法判断一下集合中是否已经存在这个元素就行了,然后用toArray转成数组一切搞定。 
    13.  * 方法三:最简单的方法就是利用Set集合无序不可重复的特性进行元素过滤。 
    14.  * 方法四:链表的哈希集合:有顺序,不重复。 
    15.  */  
    16.   
    17.   
    18. public class ShijuanDa1 {  
    19.   
    20.     public static void main(String[] args) {  
    21.         // TODO Auto-generated method stub  
    22.         String[] strs ={"2007-1-01","2007-1-06",  
    23.                 "2007-1-01","2007-1-08","2007-1-08"};  
    24.           
    25.         printArr(strs);  
    26.           
    27.         System.out.println("------------");  
    28.           
    29.         Object[] newArr = ifRepeat(strs);  
    30.           
    31.         printArr(newArr);  
    32.           
    33.         System.out.println("------------");  
    34.           
    35.         ifRepeat2(strs);  
    36.           
    37.         System.out.println("------------");  
    38.           
    39.         Object[] newArr3 = ifRepeat3(strs);  
    40.           
    41.         printArr(newArr3);  
    42.           
    43.         System.out.println("------------");  
    44.           
    45.         ifRepeat4(strs);  
    46.   
    47.     }  
    48.       
    49.     public static void printArr(Object[] arr) {  
    50.         for (Object object : arr) {  
    51.             System.out.println(object);  
    52.         }  
    53.     }  
    54.       
    55.       
    56.     //方法一:需要传入一个Object数组,然后返回去重后的数组  
    57.     public static Object[] ifRepeat(Object[] arr){  
    58.         //用来记录去除重复之后的数组长度和给临时数组作为下标索引  
    59.         int t = 0;  
    60.         //临时数组  
    61.         Object[] tempArr = new Object[arr.length];  
    62.         //遍历原数组  
    63.         for(int i = 0; i < arr.length; i++){  
    64.             //声明一个标记,并每次重置  
    65.             boolean isTrue = true;  
    66.             //内层循环将原数组的元素逐个对比  
    67.             for(int j=i+1;j<arr.length;j++){  
    68.                 //如果发现有重复元素,改变标记状态并结束当次内层循环  
    69.                 if(arr[i]==arr[j]){  
    70.                     isTrue = false;  
    71.                     break;  
    72.                 }  
    73.             }  
    74.             //判断标记是否被改变,如果没被改变就是没有重复元素  
    75.             if(isTrue){  
    76.                 //没有元素就将原数组的元素赋给临时数组  
    77.                 tempArr[t] = arr[i];  
    78.                 //走到这里证明当前元素没有重复,那么记录自增  
    79.                 t++;  
    80.             }  
    81.         }  
    82.         //声明需要返回的数组,这个才是去重后的数组  
    83.         Object[]  newArr = new Object[t];  
    84.         //用arraycopy方法将刚才去重的数组拷贝到新数组并返回  
    85.         System.arraycopy(tempArr,0,newArr,0,t);  
    86.         return newArr;  
    87.     }  
    88.       
    89.     /* 
    90.      * 方法二:只需要创建一个集合,然后遍历数组逐一放入集合,只要在放入之前用contains()方法判断一下集合中是否已经存在这个元素就行了,然后用toArray转成数组一切搞定。 
    91.      */  
    92.     public static void ifRepeat2(Object[] arr){  
    93.         //创建一个集合  
    94.         List list = new ArrayList();  
    95.         //遍历数组往集合里存元素  
    96.         for(int i=0;i<arr.length;i++){  
    97.             //如果集合里面没有相同的元素才往里存  
    98.             if(!list.contains(arr[i])){  
    99.                 list.add(arr[i]);  
    100.             }  
    101.         }  
    102.           
    103.         //toArray()方法会返回一个包含集合所有元素的Object类型数组  
    104.         Object[] newArr = list.toArray();  
    105.         //遍历输出一下测试是否有效  
    106.         for(int i=0;i<newArr.length;i++){  
    107.             System.out.println(" "+newArr[i]);  
    108.         }  
    109.   
    110.     }  
    111.     /* 
    112.      * 方法三:最简单的方法就是利用Set集合无序不可重复的特性进行元素过滤。 
    113.      */  
    114.     public static Object[] ifRepeat3(Object[] arr){  
    115.         //实例化一个set集合  
    116.         Set set = new HashSet();  
    117.         //遍历数组并存入集合,如果元素已存在则不会重复存入  
    118.         for (int i = 0; i < arr.length; i++) {  
    119.             set.add(arr[i]);  
    120.         }  
    121.         //返回Set集合的数组形式  
    122.         return set.toArray();  
    123.     }  
    124.       
    125.     /* 
    126.      * 方法四:链表的哈希集合:有顺序,不重复。 
    127.      */  
    128.     public static void ifRepeat4(Object[] arr){  
    129.           
    130.         LinkedHashSet<Object> haoma = new LinkedHashSet<Object>();  
    131.         for (int i = 0; i < arr.length; i++) {  
    132.             haoma.add(arr[i]);  
    133.         }  
    134.           
    135.         // 创建迭代器  
    136.         Iterator<Object> iterator = haoma.iterator();  
    137.         int a = 0;  
    138.         // 迭代集合  
    139.         while (iterator.hasNext()) { // true  
    140.             Object c = iterator.next();  
    141.               
    142.             System.out.println(c);  
    143.         }  
    144.           
    145.           
    146.     }  
    147.       
    148.   
    149. }  
    展开全文
  • java实现删除数组重复数字(数组)

    千次阅读 2019-07-09 18:24:37
    int数组去除重复的数据,jdk8中使用IntStream把list转换成int数组 ,并附上冒泡排序(从小到大),(从大到小) package demo.com.ceshi; import java.util.ArrayList; import java.util.List; public class ...
  • java 去除数组重复的元素

    万次阅读 多人点赞 2016-12-08 23:23:22
    要求:清除数组重复的元素思路:因为开始时我以为是不能用集合,所以绞尽脑汁在不用集合的情况下去除数组重复的元素,需要些一个去除重复内容的方法,我首先想到的的需要一个存储去重后元素的数组,然后两层循环...
  • 给个比较简短的示例代码,注解里有写步骤123是什么:const oldArray = ["100", "100", "2.3", "2.4", "101", "101", "3.6", "3.7", "102", "102", "4.1", "4.3"]// 1.... 一维数组 转成 二维数组 [[...
  • 去除java数组重复数字

    千次阅读 2019-10-30 16:52:11
    用了两种方法,第一种用了list的contains方法,第二种用了Collections.sort方法,然后新建一个同等大小的数组,按顺序加入元素,只有后面的元素大于数组的元素才添加。因为已经排序了,可以保证此步骤不会有遗漏,...
  • Java实现数组去除重复数据的方法

    千次阅读 2018-03-29 08:54:15
    本文实例讲述了Java实现数组去除重复数据的方法。分享给大家供大家参考,具体如下:前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多...
  • JAVA去掉一个已排序数组重复数字
  • [Java]去掉数组重复的元素

    千次阅读 2018-02-06 17:12:30
    提供两种思路解决去掉重复数字: 1)添加一个数组,但是长度无法确定,记录没有重复的值 2)添加一个数组,用于记录原数组中... * 去掉数组重复数字 * @param src * @return */ public static int[] chan...
  • 去掉数组中重复的元素 // 实现对一个数组去重的功能。 // 思路:1.先冒泡排序 // 2.确定重复数字的个数, // 3.确定新数组长度,创建新数组 // 4.创建一个boolean变量判断是否重复, 遍历老数组,如果重复将不...
  • java去除数组重复元素的方法

    千次阅读 2020-07-21 20:08:01
    解法一 保留重复数字中的第一次出现的元素 首先建立一个与原数组等长的标记数组flag[],它的下标与原数组下标相同,而我们只要改变它的值,就可以知道第几个元素是重复的 遍历原数组 内层也遍历原数组,如果arr[i] ...
  • 本文实例讲述了Java实现数组去除重复数据的方法。分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有...
  • 题目描述: 给定一个整形数组,例如:21,23,25,15,15,23,98,5,21 去除重复项之后保留的数组为25,98,5. java语言解法: public class ArrayViewUtils { /** * @desc 删除数组重复数字,只保留不重复数字...
  • 虽然这个题目比较简单,不用STL这个还算是比较好理解的 ...import java.util.Scanner; public class P1059 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc....
  • 先声明一个数组,这个数组中可能会存在重复的元素,而且顺序也是杂乱的,要求将这个数组中的重复元素排除掉并将新得到的数组进行递增排序
  • 可以看出,也是去掉重复的数据,并且实现了排序。 我们来做一个HashSet和TreeSet的比较: HashSet HashSet有以下特点 1) 不能保证元素的排列顺序,顺序有可能发生变化 2) 不是同步的 3) 集合元素可以是...
  • JAVA int数组去除重复的程序段/方法

    千次阅读 2018-03-10 21:33:06
    static void QuChong(int arr[]) { for(int i=0;i&lt;arr.length;i++) {  if(arr[0]==arr[i])  {  Random r=new Random();   int x=r.nextInt(32)+1;  arr[i]=x;  continue;  }  else ...
  • java删除数组重复元素

    千次阅读 2017-04-19 23:07:05
      Java SE GXW3310-08 14:30
  • Java删除数组重复数据

    千次阅读 2016-11-01 17:52:36
    代码如下: beans = (String[]) ArrayUtils.addAll(intSendStr, strs)... // listview数据源,合并两个数组 List list = new ArrayList(); for (int i = 0; i ; i++) { if (!list.contains(beans[i])) { list.add(b
  • Java数组去除重复元素

    2008-09-15 21:17:00
    import java.util.LinkedList;... * 数组重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8} */ public class RemoveTest { public static void main(String[] args) {...
  • Java数组去掉重复的方法集

    千次阅读 2014-11-18 16:06:16
    经常用到,有时候不只是简单...方法一、 这种类似与选择排序算法,首先我们取i值,然后将i之后的所有重复去掉。具体实现如下: import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** *
  • java 删除数组重复元素

    千次阅读 2012-11-07 19:38:37
    package com.akfucc.zhidao; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; public class P124876743 { public static void main(String[] arg

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,011
精华内容 11,204
关键字:

java去除数组重复数字

java 订阅