【问题标题】:Deleting Duplicate element in array删除数组中的重复元素
【发布时间】:2015-02-09 18:40:33
【问题描述】:
public void noDups() {
    int rem = nElems;
    for (int t = 0; t < nElems; t++) {
        for (int t2 = 1; t2 < rem; t2++) {
            long mydup = a[t];
            long mydup2 = a[t+1];
            if (mydup == mydup2) {
                delete(mydup);
            }
        }
        rem--;
    }
}
public void delete(long value)
{
    int j;
    for(j=0; j<nElems; j++)        // look for it
        if( value == a[j] )
            break;
    else                           // found it
    {
        for(int k=j; k<nElems; k++) // move higher ones down
            a[k] = a[k+1];
        nElems--;                   // decrement size
        //return true;
    }

如何添加一个名为 noDups() 的方法 在不中断顺序的情况下从先前排序的数组中删除重复项。 注意:假设数组中只有一个值可以重复。例如,在 {1,3,4,4,4,4,5,7,9} 只有 4 有重复。

【问题讨论】:

  • 祝您好运,只需复制粘贴作业要求即可获得答案。
  • @SklogW 这是我尝试过的代码,但我无法让它做我需要的事情,所以除了批评我的作业要求之外,你有什么建议
  • 你已经有一个方法一个叫做noDups()的方法。您应该查看您的问题并添加有关您的具体问题的详细信息。
  • 我的方法不起作用,我不确定我做错了什么有什么帮助吗? @MPirious
  • 所有这些 cmets 都是为了确定 my method isn't working 的含义。与您希望看到的相比,您看到了什么。

标签: java arrays duplicates elements


【解决方案1】:

我注意到的几件事:

-noDups 下有两个for 循环,但变量t2 没有被使用。

-您重新定位数组中的所有项目,但数组将具有相同的长度。

-如果不运行代码,我猜你会看到 Array Index out of range 错误,原因是 k+1elseelse 部分中@

【讨论】:

    【解决方案2】:

    也许您尝试使用 ArrayList 作为您的解决方案...

    见:

    //for initialize
        List<Long> list = new ArrayList<Long>();
    
        //for add a new number
        list.add(10l);
    
        //for remove
        list.remove(10l);
    
        //for verify if exists
        list.contains(10l);
    

    【讨论】:

      猜你喜欢
      • 2011-03-22
      • 2013-05-20
      • 2013-03-23
      • 2011-07-03
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多