Java 如果包含特定值,如何在运行时检查数组

Java 如果包含特定值,如何在运行时检查数组,java,arrays,unique,Java,Arrays,Unique,下面提供的代码执行一项任务,它获取所有x和y或类似字符串,并将其添加到数组中 我可以将它们全部添加到数组中,但我要检查的是,如果我要插入到数组中的变量已经存在,则不插入else insert ArrayList vars = new ArrayList(); for(int i = 0; i < temp.length; i++) for(int j = 1; j < temp[0].length - 1; j++) { String text_to_

下面提供的代码执行一项任务,它获取所有
x
y
或类似字符串,并将其添加到数组中

我可以将它们全部添加到数组中,但我要检查的是,如果我要插入到数组中的变量已经存在,则不插入else insert

ArrayList vars = new ArrayList();
for(int i = 0; i < temp.length; i++)
    for(int j = 1; j < temp[0].length - 1; j++)
    {
        String text_to_parse = temp[i][j];
        Pattern y = Pattern.compile("[?]\\w[,)]"); // find the values in pattern of ?x, or ?x)
        Matcher z = y.matcher(text_to_parse);
        while(z.find())
        {
            String to_add = z.group();
            to_add = to_add.replaceAll("[\\,\\) ]","");
            // logic required here if to_add exist in vars then do no insert else insert

        }
     }
ArrayList vars=new ArrayList();
对于(int i=0;i

我尝试使用
vars.contain
,但它添加了找到的所有值

如果
vars
不包含,请尝试。像这样使用
操作员

if (!(vars.contains(item)))
   //add the item
else
   //do nothing

保留遇到的字符串序列真的很重要吗?否则,将
vars
更改为
java.util.Set
(例如
java.util.HashSet
)的实现将非常有用。这将在
.contains()
上提供更好的性能。对于一些需要管理的条目来说,这可能并不明显,但是习惯使用适当的数据结构通常会有很大帮助。(对于大量的条目,您甚至可以考虑使用<代码> SET/CODE >以便容易地检测预存在和<代码>列表< /代码>实现排序。)和BTW:请使用接口类型与变量而不是硬编码实现。在您的情况下,您可以这样写:
List vars=new ArryList()
@rbento感谢您的编辑,但实际上?x和?y后面跟有前面提供的问号,问号表示接下来是字符串中的变量。