如何在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。