Java 如何检查字符串是否在任何ArrayList中

Java 如何检查字符串是否在任何ArrayList中,java,Java,因此,我想检查我的字符串是否在任何arraylist中,而无需执行以下操作: if(ArrayList1.Contains(“测试”)| | ArrayList2.Contains(“测试”)| | ArrayList3.Contains(“测试”)){ } 我不知道是否有一种方法可以通过循环来实现 谢谢除了像您一样使用之外,您没有太多选择,但是,如果您使用番石榴,您可以使用易拉罐: if (Iterables.contains(Iterables.concat(list1, list2, et

因此,我想检查我的字符串是否在任何arraylist中,而无需执行以下操作:
if(ArrayList1.Contains(“测试”)| | ArrayList2.Contains(“测试”)| | ArrayList3.Contains(“测试”)){
}

我不知道是否有一种方法可以通过循环来实现


谢谢

除了像您一样使用
之外,您没有太多选择,但是,如果您使用番石榴,您可以使用
易拉罐

if (Iterables.contains(Iterables.concat(list1, list2, etc), theString))
    // do your stuff
如果没有,请创建一个包含所有其他列表的完整列表,并在其上使用
.contains()

private static <T> List<T> concatLists(final List<T> list1, 
    final List<T>... others)
{
    final List<T> ret = new ArrayList<T>(list1);
    for (final List list: others)
        ret.addAll(list);
    return ret;
}

// In code:

if (concatLists(list1, list2, etc).contains(theString))
    // do your stuff
私有静态列表目录(最终列表列表1,
最终名单(其他)
{
最终列表ret=新的ArrayList(列表1);
用于(最终清单:其他)
ret.addAll(列表);
返回ret;
}
//代码:
if(concatlist(列表1、列表2等).contains(字符串))
//做你的事

除了像您一样使用
if
之外,没有太多选择,但是,如果您使用番石榴,您可以使用
Iterables

if (Iterables.contains(Iterables.concat(list1, list2, etc), theString))
    // do your stuff
如果没有,请创建一个包含所有其他列表的完整列表,并在其上使用
.contains()

private static <T> List<T> concatLists(final List<T> list1, 
    final List<T>... others)
{
    final List<T> ret = new ArrayList<T>(list1);
    for (final List list: others)
        ret.addAll(list);
    return ret;
}

// In code:

if (concatLists(list1, list2, etc).contains(theString))
    // do your stuff
私有静态列表目录(最终列表列表1,
最终名单(其他)
{
最终列表ret=新的ArrayList(列表1);
用于(最终清单:其他)
ret.addAll(列表);
返回ret;
}
//代码:
if(concatlist(列表1、列表2等).contains(字符串))
//做你的事

创建一个包含所有ArrayList的ArrayList,然后在其上循环,就像:

for(ArrayList list : arrays){//arrays contains all your arraylsits, ArrayList1, ArrayList2 ...
   return list.contains(value);
}

创建一个包含所有ArrayList的ArrayList,然后在其上循环,如下所示:

for(ArrayList list : arrays){//arrays contains all your arraylsits, ArrayList1, ArrayList2 ...
   return list.contains(value);
}

相反,您可以编写自定义ArrayList类,并重写contains方法以检查唯一内容

public class UniqueNamesList extends ArrayList<String> {
    @Override
    public boolean contains(Object o) {
        String inStr = (String)o;
        for (String s : this) {
            if (inStr.equalsIgnoreCase(s)) return true;
        }
        return false;
    }
}
公共类UniqueNamesList扩展了ArrayList{
@凌驾
公共布尔包含(对象o){
字符串inStr=(字符串)o;
for(字符串s:此){
if(inStr.equalsIgnoreCase)返回true;
}
返回false;
}
}

相反,您可以编写自定义ArrayList类,并重写contains方法以检查唯一内容

public class UniqueNamesList extends ArrayList<String> {
    @Override
    public boolean contains(Object o) {
        String inStr = (String)o;
        for (String s : this) {
            if (inStr.equalsIgnoreCase(s)) return true;
        }
        return false;
    }
}
公共类UniqueNamesList扩展了ArrayList{
@凌驾
公共布尔包含(对象o){
字符串inStr=(字符串)o;
for(字符串s:此){
if(inStr.equalsIgnoreCase)返回true;
}
返回false;
}
}

将所有ArrayList的内容放入一个集合,然后查询该集合

Set set=new HashSet();
for (ArrayList list: allLists) {
   set.addAll(list);
}
...
return set.contains("Test");

实际上,可以使用ArrayList或任何集合来代替HashSet,但是
HashSet.contains
是最快的方法。

将所有ArrayList的内容放在一个集合中,然后查询该集合

Set set=new HashSet();
for (ArrayList list: allLists) {
   set.addAll(list);
}
...
return set.contains("Test");


实际上,可以使用ArrayList或任何集合代替HashSet,但是
HashSet.contains
是最快的方法。

您的
ArrayList
变量名是什么?它们是否遵循一种模式?是否包含?或者它包含?是的,第一个是:第二个是:第二个是:第三个是三个e.t.c到十个。它是否包含某个字符串…bukkit与这个问题有什么关系?我的意思是你给它加了标签,但我找不到连接。你的
ArrayList
变量名是什么?它们是否遵循一种模式?是否包含?或者它包含?是的,第一个是:第二个是:第二个是:第三个是三个e.t.c到十个。它是否包含某个字符串…bukkit与这个问题有什么关系?我的意思是,你给它加了标签,我找不到连接。然后创建一个包含所有其他连接的列表,并在上面使用
.contains()
,我没想到,谢谢!fge做一个回答,我会接受:)我只是用一些示例代码做的;)然后创建一个包含所有其他内容的列表,并在上面使用
.contains()
,我没想到,谢谢!fge做一个回答,我会接受:)我只是用一些示例代码做的;)或者只在包含所有arraylist的arraylist中执行.contains:)@LucaspedStack否,您不能执行。在包含所有arraylist的arraylist中执行.contains:)@LucaspedStack否,您不能执行。问题是生成初始集相当长。可能会,也可能不会,比连接所有列表更快…嘿,我正在使用哈希集,但是如果我想从我刚刚检查的哈希集中删除字符串,如果它确实包含字符串,我想删除它,而不必找出它来自哪个arraylist。问题是构建初始集相当长。可能会,也可能不会,比连接所有列表更快…嘿,我正在使用哈希集,但是如果我想从我刚刚检查的哈希集中删除字符串,如果它确实包含字符串,我想删除它,而不必找出它来自哪个arraylist