2016-02-21 72 views
0

我有两个不同大小的字符串arraylist。我需要比较这两个数组列表并输出。但它给出了一个错误"Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6, Size: 6"。我需要为这个错误做些什么改变。我的代码,在Java中比较两个不同大小的字符串arraylist

import java.util.ArrayList; 
import java.util.Arrays; 

public class TestCompareArrays { 

    public static void main(String[] args) { 

    ArrayList<String> arr1 = new ArrayList<String>(Arrays.asList("a","b","c","d","e","f")); 
    ArrayList<String> arr2= new ArrayList<String>(Arrays.asList("b","d","f")); 

      for(int i = 0; i <= arr1.size(); i++){ 
       if(arr2.contains(arr1.get(i))){ 
        System.out.println("yes"); 
       } 
        else{ 
         System.out.println("No"); 
        }} 
}} 
+1

'对(INT I = 0; I

回答

1

尝试更换此:

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

随着使用<代替<=这样的:

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

因为ArrayList的大小开始从0size()-1

0

使用retain all,IST快速精确和有效的:

String orig[] = { "a", "b", "b", "c" }; 
String act[] = { "x", "b", "b", "y" }; 
List origList = new ArrayList(Arrays.asList(orig)); 
List actList = Arrays.asList(act); 
origList.retainAll(actList); 
System.out.println(origList);