2012-02-17 93 views
1

我需要一些關於Java代碼的幫助。我有10個元素的數組。我想比較第一個元素,即。數組[0]到數組[1],數組[2],...數組[9]。如果我發現任何與數組[0]相等的元素,那麼我執行一些操作。然後我需要比較數組[1]到數組[2],數組[3],...數組[1],並查找數組[1]是否等於某物等。我真的無法弄清楚這一點,而且我被卡住了。有人能幫我嗎。Java Array比較

+1

請看看這個回答可以幫助你:http://stackoverflow.com/questions/840781/easiest-way-to-find-duplicate-值-IN-A-JavaScript的陣列 – Aaike 2012-02-17 01:04:02

回答

5

因此要比較的所有其他元素,在下次啓動並工作了:如果你想通過整個列表這樣

int i = x; //set i to the array index to compare against 
for(int j = i + 1; j < array.length; j++){ 
    if(array[i].equals(array[j])) 
     ...; 
} 

,你可以做一個嵌套:

for(int i = 0; i < array.length; i++){ 
    for(int j = i + 1; j < array.length; j++){ 
     if(array[i].equals(array[j])) 
      ...; 
    } 
} 
0

您可以在陣列進行排序,並很容易讓for循環

Arrays.sort(array); 
for(int i = 0 ; i < array.length - 1; i++) { 
    if(array[i].equals(array[i++])) { 
     ........ 
     break(); 
    } 
} 
1

我會使用ArrayList和則y ou可以使用contains方法來查看List是否包含()您的項目。

Java Example

package org.kodejava.example.util; 

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

public class ArrayListContains { 
    public static void main(String[] args) { 
     List<String> list = new ArrayList<String>(); 
     list.add("Item 1"); 
     list.add("Item 2"); 
     list.add("Item 3"); 
     list.add("Item 4"); 

     if (list.contains("Item 1")) { 
      System.out.println("True"); 
     } else { 
      System.out.println("False"); 
     } 
    } 
} 
0
  1. 創建一組守住獨特的元素。
  2. 迭代數組,嘗試向該集添加元素。
  3. 如果元素被添加到集合中,這是第一次遇到該元素。
  4. 如果一個元素沒有添加到集合中,那麼它是一個重複項目。

針對上述步驟中的一些代碼:

Set<Object> uniqueElements = new HashSet<Object>(); 
for (Object element : array) { 
    if (!uniqueElements.add(element)) { 
     // duplicate element; do your processing 
    } 
}