有没有办法可以比较一个数组和一个arraylist?

时间:2015-04-05 02:48:14

标签: java

有没有办法可以比较数组和arraylist,如

if (array[0]==arraylist[0])

我正在解决这个问题:

String[] s= {"a","a","b","b","b","c"};
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
// create a new arraylist that stores the frequency of each character. 
// For example, "a" appears twice in s, so newArrayList[0]=2; "b" appears 
// three times, so newArrayList[1]=3, and so on.

我的想法是使用一个循环来扫描字符串数组,每当它中的一个字母等于列表中的字母时,int count ++。但我不知道如何比较数组中的事物和arraylist中的事物。

4 个答案:

答案 0 :(得分:4)

最简单的方法是

Arrays.asList(arr).equals(list)

答案 1 :(得分:1)

是的,您可以遍历数组和arraylist并比较元素。使用.get(index)访问ArrayList元素。如果要比较对象(非基元),则需要使用.equals()方法,而不是==

if(array[i].equals(arrayList.get(i) ) )

答案 2 :(得分:0)

import java.util.ArrayList;

public class ArrayAndArrayListElementsComparison {
    public static int compareArrayAndArrayListElements(String[] array, ArrayList<String> arraylist) {
        int count = 0;
        for (String s : array) {
            if (arraylist.contains(s)) {
                count++;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        String[] array = {"a", "a", "b", "b", "b", "c"};
        ArrayList<String> arraylist = new ArrayList<String>();
        System.out.println("");
        arraylist.add("a");
        arraylist.add("b");
        arraylist.add("c");

        if (!arraylist.isEmpty() && array.length > 0) {
            if (compareArrayAndArrayListElements(array, arraylist) == array.length) {
                System.out.println("ArrayList contains all the elements in Array");
            } else if (compareArrayAndArrayListElements(array, arraylist) > 0) {
                System.out.println("ArrayList contains only few elements in Array");
            } else {
                System.out.println("ArrayList contains none of the elements in Array");
            }
        } else {
            System.out.println("Either ArrayList or Array is Empty.");
        }
    }
}

答案 3 :(得分:-1)

你试试

if (array[0].equals(arraylist[0]))

在java比较中,字符串应该使用equals()。它不像javascript。