【问题标题】:Equal values in a list java列表java中的相等值
【发布时间】:2015-01-28 17:07:30
【问题描述】:

我可以看到列表中包含两个或多个相同数字的结果。一切都必须基于列表,代码本身很简单,但我不知道如何实现相同的值打印屏幕。

所有这些都是在列表中输入的 5 个数字下完成的。

示例:

介绍 1 - 2 - 3 - 3 - 4

输出将是数字 3 重复。

这是我的代码:

package generarlista;
import java.util.*;

public class GenerarLista {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int num;
        Scanner read = new Scanner (System.in);
        List<Integer> lista = new ArrayList<>();
        System.out.println("A list of 5 integers is generated and printed equal values\n");
        for (int i=1; i<6; i++){
            System.out.println("Enter the value "+ i +" element to populate the list");
            num = read.nextInt();
            lista.add(num);
        }
        System.out.println("Data were loaded \n");
        System.out.println("Values in the list are: ");

        Iterator<Integer> nameIterator = lista.iterator();

        while(nameIterator.hasNext()){
            int item = nameIterator.next();
            System.out.print(item+" / ");
        }
        System.out.println("\n");
        System.out.println("Equals are: ");

    }

}

非常感谢!

【问题讨论】:

  • 举个输入输出的例子。无论如何,我会对列表进行排序,然后进行迭代,如果下一个数字等于前一个数字,则打印每个数字。
  • 你想要什么不清楚。提供示例输入和预期输出。
  • 我忘记了这个例子。 @哈南
  • 遍历 List 并在 Any 集合中输入每个元素,就像另一个列表或集合一样,然后在该集合上插入 check .conatins(element) 之前,如果它返回 true,则表示该元素已经存在。

标签: java list data-structures arraylist


【解决方案1】:

有许多不同的方法可以解决这个问题。我首先想到的是对 ArrayList 进行排序并检查相邻字符。

package generarlista;
import java.util.*;

public class GenerarLista {
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    int num;
    Scanner read = new Scanner (System.in);
    List<Integer> lista = new ArrayList<>();
    System.out.println("A list of 5 integers is generated and printed equal values\n");
    for (int i=1; i<6; i++){
        System.out.println("Enter the value "+ i +" element to populate the list");
        num = read.nextInt();
        lista.add(num);
    }
    System.out.println("Data were loaded \n");
    System.out.println("Values in the list are: ");

    Collections.sort(lista);

    List<Integer> duplicates = new ArrayList<>();

    for (int i = 0; i < lista.size(); i++) {
        System.out.print(lista.get(i) + " ");
        if (i < lista.size()-1 && lista.get(i) == lista.get(i+1))
            if (!duplicates.contains(lista.get(i))
                duplicates.add(lista.get(i));
    }      

    System.out.println("\n");
    System.out.println("Equals are: ");

    for (int i = 0; i < duplicates.size(); i++) {
        System.out.print(duplicates.get(i) + " ");
    }

}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多