2014-07-12 127 views
0

有沒有辦法檢查一個ArrayList是否包含一個對象數組? 例如,我有的ArrayList檢查ArrayList是否包含數組對象

ArrayList<Integer[]> myList = new ArrayList<Integer[]>(); 
mylist.add(new Integer[]{5,5}); 
mylist.add(new Integer[]{1,1}); 

我想檢查它是否包含一個特定的整數數組。像:

Integer[] myArray = new Integer[]{5,5}; 

如果我使用myList.containts(myArray);它應該返回true,但它會檢查Integer對象是否被包含,而不是數組Values。

有沒有辦法來檢查值?

+0

你必須做你自己的,價值無法評估這個樣子。 –

回答

7

java.util.Arrays包含幾個陣列相關的實用方法,包括Arrays.deepEquals(Object[] a1, Object[] a2)。您可以掃描列表中尋找,根據該測試等於new Integer[]{5,5}任何元素:

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

public class Test { 
    public static void main(String[] args) { 
    ArrayList<Integer[]> myList = new ArrayList<Integer[]>(); 
    myList.add(new Integer[] { 5, 5 }); 
    myList.add(new Integer[] { 1, 1 }); 
    System.out.println(deepContains(myList, new Integer[] { 5, 5 })); 
    System.out.println(deepContains(myList, new Integer[] { 5, 3 })); 
    } 

    public static boolean deepContains(List<Integer[]> list, Integer[] probe) { 
    for (Integer[] element : list) { 
     if (Arrays.deepEquals(element, probe)) { 
     return true; 
     } 
    } 
    return false; 
    } 
} 
相關問題