Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中找到第一个匹配元素时,如何迭代2arraylist并退出_Java_Arraylist - Fatal编程技术网

在java中找到第一个匹配元素时,如何迭代2arraylist并退出

在java中找到第一个匹配元素时,如何迭代2arraylist并退出,java,arraylist,Java,Arraylist,我有两个数组列表,其中都有一些公共值 我试着做循环,做循环,但什么都不适合我 我想要第一个匹配/公共元素,并返回相同的元素,然后在那里退出代码本身 boolean good = true; for (int i = 0; i <1Val.size(); i ++) { if (!(2Val.contains(1Val.get(i)))) { System.out.println("Matched---" +quoteVal.get(i)); good

我有两个数组列表,其中都有一些公共值

我试着做循环,做循环,但什么都不适合我

我想要第一个匹配/公共元素,并返回相同的元素,然后在那里退出代码本身

boolean good = true; 
for (int i = 0; i <1Val.size(); i ++) { 
   if (!(2Val.contains(1Val.get(i)))) { 
      System.out.println("Matched---" +quoteVal.get(i)); 
      good = false; break; 
   } 
} 
boolean good=true;

for(int i=0;i如果其中一个数组列表小于,则应在for循环中使用该数组列表的大小

for(int i = 0; i < 1Val.size(); i++){

      if(2val.contains(1Val.get(i))){
         return true; // common value found
      }

}
return false; // common value not found
for(int i=0;i<1Val.size();i++){
如果(2val.contains(1Val.get(i))){
返回true;//找到公共值
}
}
返回false;//找不到公共值
试试这段代码

for (int i=0;i<arrayList2.size();i++) {

for (int j=0;j<arrayList1.size(); j++) {


if(al2.get(i)equals(al1.get(j))){
// do something// you can add them to the new arraylist to process further or type break; to break from the loop
{
} 
}

for(inti=0;i也许您希望使用流

    List<String> list1 = Arrays.asList("a","b","c","d","e");
    List<String> list2 =  Arrays.asList("b","e");

    //gets the list of common elments
    List<String> common = list1.stream().filter(s -> list2.contains(s)).collect(Collectors.toList());
    if (common.isEmpty()) {
        System.out.println("no common elements");
    }else {
        System.out.println("common elements");
        common.forEach(System.out::println);
    }


    //just the check if any equal elements exist
    boolean commonElementsExist = list1.stream().anyMatch(s -> list2.contains(s));


    //3rd version get the first common element
    Optional<String> firstCommonElement = list1.stream().filter(s -> list2.contains(s)).findFirst();

    if(firstCommonElement.isPresent()) {
        System.out.println("the first common element is "+firstCommonElement.get());
    }else {
        System.out.println("no common elements");
    }
list1=Arrays.asList(“a”、“b”、“c”、“d”、“e”);
list2=Arrays.asList(“b”、“e”);
//获取常用元素的列表
List common=list1.stream().filter->list2.contains().collect(Collectors.toList());
if(common.isEmpty()){
System.out.println(“无公共元素”);
}否则{
System.out.println(“公共元素”);
common.forEach(System.out::println);
}
//只是检查是否存在任何相等的元素
布尔commonElementsExist=list1.stream().anyMatch->list2.contains;
//第三个版本获得第一个公共元素
可选的firstCommonElement=list1.stream().filter->list2.contains().findFirst();
if(firstCommonElement.isPresent()){
System.out.println(“第一个公共元素是”+firstCommonElement.get());
}否则{
System.out.println(“无公共元素”);
}

您可以为此使用
标记的
语句

outer_loop:
for (int i=0;i<arrayList2.size();i++) {
    for (int j=0;j<arrayList1.size(); j++) {
        if(arrayList2.get(i)==arrayList1.get(j)){
            break outer_loop; 
        } 
    }
}
外环:

对于(int i=0;i,您可以使用Java Streams来解决这个问题:

boolean good = val1.stream().anyMatch(val2::contains);
如果需要第一个匹配项的值,可以使用:

Optional<String> firstMatch = val1.stream()
        .filter(val2::contains)
        .findFirst();
可选的firstMatch=val1.stream()
.filter(val2::contains)
.findFirst();
使用
Optional.isPresent()
检查是否找到匹配项,使用
Optional.get()
获取实际值


若要提高大型列表的性能,请为
val2
使用一个集合。由于我无法发布我在主描述中尝试的代码,因此
set.contains()

的时间复杂度为O(1)。在此处发布
boolean good=true;对于(int i=0;i什么不起作用?请提问并在那里添加代码。在此代码中,将打印不匹配的第一个元素。如果需要第一个元素,请从检查中删除
。@用return 1Val.get(i)替换中断符…但是你的代码无法编译,变量名不允许以数字开头如果你使用==它不起作用,你必须使用等于。顺便说一句,使用标签来实现这一目的非常…很难说你必须使用等于而不是==是的,对不起,你是对的我忘了我使用的是arrayList而不是arrays