Java--从数组中删除重复元素时出错
我知道有些人已经问过关于复制品的问题,我已经看过了所有这些答案,但似乎没有一个对我有帮助/我仍然无法编译它。在我的代码中是否有明显的遗漏????帮助(编程新手!) 我需要编写一个方法,它接受一个参数,一个字符串值数组,并返回一个新数组,该数组没有重复的值,也不需要对原始数组排序。比如说Java--从数组中删除重复元素时出错,java,arrays,for-loop,methods,Java,Arrays,For Loop,Methods,我知道有些人已经问过关于复制品的问题,我已经看过了所有这些答案,但似乎没有一个对我有帮助/我仍然无法编译它。在我的代码中是否有明显的遗漏????帮助(编程新手!) 我需要编写一个方法,它接受一个参数,一个字符串值数组,并返回一个新数组,该数组没有重复的值,也不需要对原始数组排序。比如说 String [] abc = {"A", "C", "C", "B", "A", "C", "B", "B", "A"}; String [] new = removeDuplicates (abc); for
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();
String[]abc={“A”、“C”、“C”、“B”、“A”、“C”、“B”、“B”、“A”};
字符串[]新=移除的副本(abc);
for(int i=0;i
输出应为:A C B
这是我的密码:
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--;
}
}
}
}
}
import java.util.*;
类复制
{
公共静态void main(字符串[]args)
{
字符串[]值={“A”、“C”、“C”、“B”、“A”、“C”、“B”、“B”、“A”};
字符串[]新列表=移除的副本(值);
}
移除的私有静态字符串重复(字符串[]原始数组)
{
for(int i=0;i
六个错误:
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--;
^
replication.java:9:错误:类型不兼容
字符串[]新列表=移除的副本(值);
^
必需:字符串[]
找到:字符串
重复。java:14:错误:找不到符号
for(int i=0;i
这在java中无效:
public static void main (String [] args)
String [] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] newList = removeDuplicates (values);
您必须添加{}来定义静态main方法的范围:
public static void main (String [] args){
String[] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String[] newList = removeDuplicates (values);
}
这在java中无效:
public static void main (String [] args)
String [] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] newList = removeDuplicates (values);
您必须添加{}来定义静态main方法的范围:
public static void main (String [] args){
String[] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String[] newList = removeDuplicates (values);
}
这就是你需要的全部代码。 你可以在这里阅读收藏
import java.util.*;
类复制
{
静态字符串[]值={“A”、“C”、“C”、“B”、“A”、“C”、“B”、“B”、“A”};
公共静态void main(字符串[]args){
System.out.println(移除的副本(值));
}
静态集合移除的副本(字符串[]原始数组)
{
List arList=newarraylist(Arrays.asList(values));
返回新的LinkedHashSet(arList);
}
}
这就是您需要的全部代码。
你可以在这里阅读收藏
import java.util.*;
类复制
{
静态字符串[]值={“A”、“C”、“C”、“B”、“A”、“C”、“B”、“B”、“A”};
公共静态void main(字符串[]args){
System.out.println(移除的副本(值));
}
静态集合移除的副本(字符串[]原始数组)
{
List arList=newarraylist(Arrays.asList(values));
返回新的LinkedHashSet(arList);
}
}
1)您的方法removedupplicates()返回一个字符串。在主块中,需要一个字符串数组
2) 作用域变量newList位于主块内。因此,此变量在RemovedUpplicates方法中不可见
3) “originalArray.length”返回一个“int”,而不是一个字符串。1)您的方法removedupplicates()返回一个字符串。在主块中,需要一个字符串数组
2) 作用域变量newList位于主块内。因此,此变量在RemovedUpplicates方法中不可见
3) “originalArray.length”返回一个“int”,而不是字符串。您应该阅读错误消息
Duplication.java:9: error: incompatible types
String [] newList = removeDuplicates (values);
此函数返回的String
不是String[]
private static String removeDuplicates (String [] originalArray)
你应该把它声明为
private static String [] removeDuplicates (String [] originalArray)
您应该在要使用它的函数范围内声明newList
,这会导致
Duplication.java:14: error: cannot find symbol
for (int i = 0; i < newList.length; i++)
仔细阅读编译错误,它们解决了所有问题。您应该阅读错误消息
Duplication.java:9: error: incompatible types
String [] newList = removeDuplicates (values);
此函数返回的String
不是String[]
private static String removeDuplicates (String [] originalArray)
你应该把它声明为
private static String [] removeDuplicates (String [] originalArray)
您应该在要使用它的函数范围内声明newList
,这会导致
Duplication.java:14: error: cannot find symbol
for (int i = 0; i < newList.length; i++)
仔细阅读编译错误,它们解决了所有问题。请将数组从新重命名为其他名称。.两个问题:(1)在
public static void main
之后,您的{
在哪里您正在尝试在方法中使用方法吗?因为这是不允许的。1.new
是保留字,Java中的任何变量都不能使用该名称。2.在另一个方法中定义方法是不正确的。请将数组从new重命名为其他名称。两个问题:(1)w