2015-04-05 61 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

相關問題