科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道去掉一个已经排好序的数组的重复数字

去掉一个已经排好序的数组的重复数字

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

去掉一个已经排好序的数组的重复数字,速度尽量快

作者:csdn 来源:csdn 2009年12月17日

关键字: 问答 JavaSE java

  • 评论
  • 分享微博
  • 分享邮件

去掉一个已经排好序的数组的重复数字,速度尽量快

import java.util.*;
public class DelCopy{
public static void main(String[] args)
{
int[] oNums ={1,2,2,3,3,3,4,4,4,4,5,5,5,5,5};
List <Integer> nNums = new ArrayList <Integer>();
int temp =oNums[0];
nNums.add(temp);
for(int i=1;i <oNums.length;i++)
{
if(oNums[i]>temp)
{
nNums.add(oNums[i]);
temp=oNums[i];
}
}
System.out.print(nNums);
}
}

 

Java code
public class Test {

public static List printMap1(String[] s) {
    List<String> list = new LinkedList<String> ();
    List<String> list2 = Arrays.asList(s);
    list.addAll(list2);
    return list;

  }

  //去除数组中重复数据
  public static String[] array_unique(String[] a) {
    // array_unique
    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()]);
  }

  public static void main(String[] args) {
    String[] ar = { "cc", "dd", "cc", "ee", "ff", "gg", "cc", "ee"};
    String[] s = array_unique(ar);
    for (String aa : s) {
      System.out.println(aa);
    }
  }

}

int[] nums1 ={1,2,2,3,3,3,4,4,4,4,5,5,5,5,5};
final int LENGTH = nums1.length;
int[] nums2 = new int[LENGTH];
nums2[0] = nums1[0];
if(nums1[0]==nums1[LENGTH-1]){
System.out.println(nums2);
}else{
int j = 1;
for(int i=1;i <LENGTH;i++){
if(nums1[i]==nums1[i-1]){
continue;
}else{
nums2[j] = nums1[i];
j++;
}
}
}

 

 

Java code

public class Sample
{
    public static void main(String[] args)
    {
        int[] array = {1, 2, 3, 3, 5, 6, 7, 8, 8, 8, 10, 12, 13, 13, 15, 20};
       
        long s = System.nanoTime();
       
        int len = array.length;
        int[] temp = new int[len];
        int i = 0;
        int j = 0;
        temp[j] = array[i];
        while (i < len)
        {
            if (array[i++] != temp[j])
            {
                temp[++j] = array[i - 1];
            }
        }
       
        int[] result = new int[++j];
       
        System.arraycopy(temp, 0, result, 0, j);
       
        long e = System.nanoTime();
       
        System.out.println("TIME=" + (e - s));
       
//        for (int k = 0; k < result.length; k++)
//        {
//            System.out.println(result[k]);
//        }
       
    }
}


 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章