首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java --从数组中删除重复元素时出错

Java --从数组中删除重复元素时出错
EN

Stack Overflow用户
提问于 2017-04-10 00:36:11
回答 4查看 273关注 0票数 0

我知道有些人已经问过关于副本的问题,我已经看过了所有这些答案,但似乎都没有帮助我/我仍然无法编译它。我的代码中有没有什么明显的遗漏?帮助(编程新手!)

我需要编写一个方法,它接受一个参数,一个字符串值的数组,并返回一个没有重复值的新数组,并且不需要对原始数组进行排序。例如

代码语言:javascript
复制
String [] abc = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] new = removeDuplicates (abc);
for (int i = 0; i < new.length; i++)
{
    System.out.print (new[i] + " ");
}
System.out.println();

输出应该是:A、C、B

下面是我的代码:

代码语言:javascript
复制
    import java.util.*;

    class Duplication
    {
        public static void main (String [] args)
        {
            String [] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
            String [] newList = removeDuplicates (values);
        }
        private static String removeDuplicates (String [] originalArray)
        {
            for (int i = 0; i < newList.length; i++)
            {
                System.out.print (newList[i] + " ");
            }
            System.out.println();

            String noDuplicates = originalArray.length;
            for (int d = 0; d < noDuplicates; d++)
            {
                for (int e = d + 1; e < noDuplicates; e++)
                {
                    if(originalArray[d] == originalArray[e])
                    {
                        originalArray[e] = originalArray[noDuplicates-1];
                        noDuplicates--;
                        e--;
                    }
                }
            }
        }  
    }

六个错误:

代码语言:javascript
复制
    Duplication.java:9: error: incompatible types
    String [] newList = removeDuplicates (values);
                                     ^
    required: String[]
    found:    String
    Duplication.java:14: error: cannot find symbol
    for (int i = 0; i < newList.length; i++)
                        ^
    symbol:   variable newList
    location: class Duplicates
    Duplication.java:16: error: cannot find symbol
        System.out.print (newList[i] + " ");
                          ^
    symbol:   variable newList
    location: class Duplicates
    Duplication.java:21: error: incompatible types
    String noDuplicates = originalArray.length;
                                       ^
    required: String
    found:    int
    Duplication.java:32: error: bad operand types for binary operator '-'
                originalArray[e] = originalArray[noDuplicates-1];
                                                             ^
    first type:  String
    second type: int
    Duplication.java:35: error: bad operand type String for unary operator '--'
                noDuplicates--;
                            ^
EN

回答 4

Stack Overflow用户

发布于 2017-04-10 00:39:51

这在java中是无效的:

代码语言:javascript
复制
public static void main (String [] args)
String [] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] newList = removeDuplicates (values);

您必须添加{ }来定义静态main方法的作用域:

代码语言:javascript
复制
public static void main (String [] args){
      String[] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
      String[] newList = removeDuplicates (values);
}
票数 1
EN

Stack Overflow用户

发布于 2017-04-10 01:29:52

1)您的方法removeDuplicates ()返回一个字符串。在主代码块中,您需要一个字符串数组。

2)作用域变量newList在主块内。因此,此变量在removeDuplicates方法中不可见

3) "originalArray.length“返回"int",不是字符串。

票数 1
EN

Stack Overflow用户

发布于 2017-04-10 01:37:54

您应该阅读错误消息。

代码语言:javascript
复制
 Duplication.java:9: error: incompatible types
 String [] newList = removeDuplicates (values);

此函数返回非String []String

代码语言:javascript
复制
 private static String removeDuplicates (String [] originalArray)

您应该将它声明为

代码语言:javascript
复制
 private static String [] removeDuplicates (String [] originalArray)

您应该在函数的作用域内声明newList才能使用它,这会导致

代码语言:javascript
复制
Duplication.java:14: error: cannot find symbol
for (int i = 0; i < newList.length; i++)

长度是整数,应按如下方式处理:

代码语言:javascript
复制
int noDuplicates = originalArray.length;

仔细阅读编译错误,它们解决了所有问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43309193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档