如何防止重复的用户条目进入数组?

时间:2017-08-20 16:52:30

标签: java arrays

重点是要求用户输入名称。然后,另一个。并将其存储在一个数组中。然后,如果用户输入重复的名称,它应该打印一行说,请输入另一个名称。 这是我的代码(到目前为止...也请指出任何语法错误..很赞赏...也没有hashsets或linkedhashsets,因为我们还没有在课堂上讨论过):

import java.util.Scanner
import java.util.Arrays
import java.util.Arraylist

class noduplicates 
{

    static final int max = 5;
public static void main(String[] args);


    Scanner input = new Scanner(System.in);
int     num = 0;
float   total = 0;
float[] Array = new float [max];
String[] name = new String [max];


    // Read and store all marks, (only store)
while (num < max)
{

    System.out.println("Enter name");
    name[num] = input.nextLine();
    System.out.println("Enter a name");
    name[num] = input.nextLine();
    arryList.contains("name");

2 个答案:

答案 0 :(得分:1)

在添加任何名称之前循环遍历数组,或使用ArrayList并使用方法arrayList.contains("name");检查名称是否已存在。

您也可以在答案here中使用LinkedHashSet

答案 1 :(得分:1)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Survey</title> <link rel="stylesheet" href="style.css"> </head> <body> <main class="content" role="main"> <div class="grid-100"> <div class="contained"> <div class="grid-100"> <h3>KeyPath Survey</h3> </br> <form action=""> <fieldset> <div> <label for="">1. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">2. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">3. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">4. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">5. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">6. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">7. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">8. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">9. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> <div> <label for="">10. Which of the following describes you best?</label> </div> <div class="grid-75 grid-parent"> <div class="form-item"> <select name="" id=""> <option value="Employed">Select One</option> <option value="Employed">Verbal Communication</option> <option value="Employed">Nonverbal Communication</option> <option value="Employed">Written Communication</option> </select> </div> </div> </fieldset> </form> </div> </div> <div class="form-footer"> <button class="button primary">Submit Survey</button> </div> </div></main> </body> <script src="main.js"></script> </html>相反,List没有Array方法。

迭代数组的值以检查其中一个contains()新输入或使用equals()
最后一个效率低得多,但对于一个简短的列表,它不是问题。

使用Arrays.asList(array ).contains(input)也是一种选择 在这种情况下,您不需要检查元素是否重复,因为您需要向用户打印消息,但是通过保证集合永远不会包含重复的Set来使代码更加健壮。