2015-04-05 29 views
1

有没有一种方法,我可以比较一个数组,像有没有一种方法可以比较数组和数组列表?

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

一个ArrayList,我在这个问题上的工作:

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 ++。但我不知道如何比较数组中的东西和数组列表中的东西。

+0

你是一个有点含糊的比较应该是什么。它只是一个平等吗?或者你想知道更具体的东西。 – redge 2015-04-05 02:53:43

+0

你甚至不能以这种方式比较两个数组(至少没有意义)。 – 2015-04-05 02:59:55

+0

为什么混合数组和列表开始?当然可以*将两者进行比较,但通常会避免以这种方式混合和匹配它们的数据结构。 – Makoto 2015-04-05 03:19:49

回答

1

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

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

您尝试

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

类似于Java比较字符串应该使用equals()方法。这不像javascript。

+0

arraylist [0]不会工作...你的意思是arraylist.get(0)? – dnault 2015-04-05 08:13:18

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

最短的路是这样的

Arrays.asList(arr).equals(list) 
+2

而且最快也不远 – Bohemian 2015-04-05 04:39:58

相关问题