您好我正在尝试将值添加到列表中,如下面的代码所示。我收到了错误。
for (String n2 : number ) {
List<String> ARRAY = new ArrayList<String>();
if (!ARRAY.contains(number)) {
ARRAY.add(number);
}}
但是在将数字添加到列表中时会收到错误。
错误
java:271: error: no suitable method found for add(List<String>
ARRAY.add(number);
^
method List.add(int,String) is not applicable
(actual and formal argument lists differ in length)
method List.add(String) is not applicable
(actual argument List<String> cannot be converted to String by method invo
如果我使用如下
for (String n2 : number ) {
List<String> ARRAY = new ArrayList<String>();
if (!ARRAY.contains(n2)) {
Email(n2);
ARRAY.add(n2);
}
}
如果我在上面使用。虽然已经发送了值为n2的电子邮件,但它再次发送。 首先它必须发送但是第二次,因为它已经在数组中,它不应该发送正确吗?
答案 0 :(得分:1)
1)ARRAY应该在你的for循环之外。
2)将if(!ARRAY.contains(number))替换为if(!ARRAY.contains(n2))。
您的代码需要这样
List<String> ARRAY = new ArrayList<String>();
for (String n2 : number ) {
if (!ARRAY.contains(n2 )) {
ARRAY.add(n2);
}
}
答案 1 :(得分:1)
您的代码问题是您要添加number
而不是n2
像这样更改代码
List<String> ARRAY = new ArrayList<String>();
for (String n2 : number ) {
if (!ARRAY.contains(n2)) {
ARRAY.add(n2);
}
}
答案 2 :(得分:0)
您正在尝试将一个集合 - 数字添加到字符串列表中。 我假设您正在尝试将n2添加到ARRAY。
ARRAY.add(n2);
答案 3 :(得分:0)
number
是字符串的集合,您要添加int ARRAY
而不是添加n2
List<String> ARRAY = new ArrayList<String>();
for (String n2 : number ) {
if (!ARRAY.contains(n2)) {
ARRAY.add(n2);
}
}
答案 4 :(得分:0)
我担心你的代码会出现一些错误,而不仅仅是那个错误。正如已经多次指出的那样,您尝试将可迭代的字符串集合number
添加到Array
而不是n2
这是迭代变量。如果您想添加完整的Collection
个实例,可以使用addAll()
。
至于其他方面,我强烈建议坚持使用Java命名约定并为变量使用小写名称。这将提高可读性,因为许多社区成员坚持该惯例。你可以找到一个简洁的文字here。
除非您的代码高度简化,否则您似乎也错误地在循环范围内声明ArrayList
。每次进入循环时都要实例化一个新的ArrayList
。我不确定你想做什么。一定要检查你的设计。
另外,如果您只是想避免重复值,我建议您使用Set
,因为它会在插入时使用每个成员的hashCode()
自动执行检查以检查是否存在冲突。尝试做:
HashSet<String> uniqueSet = new HashSet<>(number);
您现在应该拥有Collection
个唯一字符串。
答案 5 :(得分:0)
List<String> ARRAY = new ArrayList<String>();
for (String n2 : number ) {
if (!ARRAY.contains(n2)) {
ARRAY.add(n2);
}
}
List<String> ARRAY = new ArrayList<String>(); //have this out of the thread