每次都重新初始化数组

时间:2014-05-07 08:41:57

标签: java

您好我正在尝试将值添加到列表中,如下面的代码所示。我收到了错误。

如果我使用如下

for (String n2 : number  ) {
List<String> ARRAY  = new ArrayList<String>();
if (!ARRAY.contains(n2)) {
 Email(n2);
  ARRAY.add(n2);
 }
 }

如果我在上面使用。虽然已经发送了值为n2的电子邮件,但它再次发送。首先它必须发送,但第二次n2应该在数组中但仍然发送。任何一个帮助。如果第二次将n2传递给电子邮件则不应通过。

我正在重新发布问题,因为我认为这似乎并不清楚。

2 个答案:

答案 0 :(得分:0)

您需要将ARRAY移到for循环之外

List<String> ARRAY  = new ArrayList<String>();   // maybe as a class field
for (String n2 : number  ) {

  if (!ARRAY.contains(n2)) {
     Email(n2);
     ARRAY.add(n2);
  }
}

答案 1 :(得分:0)

List<String> ARRAY  = new ArrayList<String>();

此行必须在您的循环之外。

<强>为什么吗

简单。这是scope的问题。范围是变量的生命周期和可访问性。在这种情况下,您将其声明在loop内,因此,您猜对了该变量的范围是循环。循环退出时,变量将被销毁。

您需要将其移到外面,以便变量在循环的生命周期内持续存在。

额外阅读

请阅读Java Naming Conventions