如何在java中检查数组中是否已经存在客户端

如何在java中检查数组中是否已经存在客户端,java,Java,我是新手 我只是想问,如何禁止某人在数组中输入相同的元素 这是我当前的代码,无法正常工作: import java.util.*; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); String[] username=new String[5]; for (int c=0;c<5;

我是新手

我只是想问,如何禁止某人在数组中输入相同的元素

这是我当前的代码,无法正常工作:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String[] username=new String[5];    
        for (int c=0;c<5;c++)
    {
        System.out.print("Enter client name: ");
        username[c]=input.nextLine();
        if (username.equals(username[c]))
        {
            System.out.println("The client already exist.");
        }
    }
    }
}
import java.util.*;
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符串[]用户名=新字符串[5];

对于(int c=0;c请尝试使用数据结构,例如集合,这样可以轻松确定某个用户名是否已存在:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    Set<String> users = new HashSet<>();

    while (users.size() < 5) {
        System.out.print("Enter client name: ");
        String username = input.nextLine();

        if (!users.add(username)) {
            System.out.println("The client already exist.");
        }
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
Set users=new HashSet();
while(users.size()<5){
System.out.print(“输入客户端名称:”);
字符串username=input.nextLine();
如果(!users.add(用户名)){
System.out.println(“客户端已经存在。”);
}
}
}

虽然您可以在java中使用数组来处理此问题,但有一种数据结构可以非常轻松地处理您的问题

此数据结构是一个:

不包含重复元素的集合。更正式地说,集合不包含e1.equals(e2)这样的元素对e1和e2,最多包含一个空元素。正如其名称所暗示的,此接口为数学集合抽象建模


username.equals(username[c])
正在将
String[]
String
进行比较。如果顺序不重要,为什么不使用
Set
呢?@vikingsteve我改为Set,但我认为OP可能希望保留用户名输入的顺序。要保留插入顺序,可以使用LinkedHashSet。