java中用户输入的重复项的升序

t30tvxxf  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(260)

要求用户输入多少个数字
输入数字
输出副本
但是我怎样才能把复制品按升序输入呢

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

public class newclass 
{
     public static void main(String[] args) 

     {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter Number of Terms:");
        int n = input.nextInt();

        System.out.println("Enter the numbers:");
        List<Integer> number = new ArrayList<>();
        for(int i = 0; i < n; i++)
        {
            int t = input.nextInt();
            number.add(t);
        }

        System.out.println("Duplicates: ");
        int k = number.size();
        int l = 0;

        for (int i = 0; i < k-1; i++) 
        {
            for (int j = i + 1; j < number.size(); j++) 
            {
                if (number.get(i) == (number.get(j))) 
                {
                    l++;
                    number.remove(j);
                }             
            }
            if(l>0)
            {
                System.out.print(" " + number.get(i) );
                l=0;
            }
        }        
    }
}
q5iwbnjs

q5iwbnjs1#

您可以使用set.add()来完成,如果元素已经在集合中,则返回false。方法如下

public static <T> Set<T> findDuplicateBySetAdd(List<T> list) {

            Set<T> items = new HashSet<>();
            return list.stream()
                    .filter(n -> !items.add(n)) 
                    .collect(Collectors.toSet());

        }

将您的列表传递给上述方法,它将按升序返回重复项:[5,9]

System.out.println(findDuplicateBySetAdd(number));

相关问题