Java阵列比较

时间:2012-02-17 01:00:07

标签: java arrays loops

我需要一些Java代码的帮助。

我有一个包含10个元素的数组。我想比较第一个元素,即。 array [0]到array [1],array [2],... array [9]。如果我发现任何等于array [0]的元素,那么我会执行一些操作。然后我需要将array [1]与array [2],array [3],... array [9]进行比较,并查找array [1]是否等于某事,依此类推。我真的无法理解这一点,我被卡住了。有人可以帮助我。

4 个答案:

答案 0 :(得分: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]))
            ...;
    }
}

答案 1 :(得分:1)

我会使用ArrayList,然后您可以使用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");
        }
    }
}

答案 2 :(得分:0)

您可以对数组进行排序,并使for循环变得轻松

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

答案 3 :(得分:0)

  1. 创建一个集合以保留唯一元素。
  2. 迭代数组,尝试向集合中添加元素。
  3. 如果元素已添加到集合中,则这是第一次遇到该项目。
  4. 如果元素未添加到集合中,则它是重复项目。
  5. 上述步骤的一些代码:

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