Так что у меня есть проблема с Hashmaps и функцией входа.Добавление элементов в hashmap
При использовании addLogin я обязан задать параметры, но это не имеет никакого смысла, чтобы сделать это, так как я уже делал это в классах конструктора. Как я просто просто использовать addLogin, а фамилия, имя и персональный идентификационный номер добавляются в hashmap?
При использовании Math.round (Math.random() * 999 + 1) для генерации случайного числа между 1-999, как я должен идти, добавляя это к хэш-карте с другими деталями студента?
Вот полный код, который относится к обоим вопросам, извинения за глупые вопросы. Я очень новичок в Java! Я очень благодарен за любую помощь, которую я получаю. Заранее спасибо.
public class TestApplication
{
// hashmap
private HashMap<String, ArrayList <String>> Application = new HashMap<String, ArrayList <String>>();
// hashset
private HashSet<String> loginsIssued = new HashSet<String>();
// An Arry List for storing student information
private ArrayList<String> Student = new ArrayList<String>();
/**
* Constructor for objects of class Application
*/
public TestApplication(String Surname, String personalIdNo)
{
if (isValidpersonalIdNo(personalIdNo) == true)
{
Student.add(Surname);
Application.put(personalIdNo, Student);
System.out.println("Application number ### " + "has registered successfully");
}
else
{
System.out.println("Application has failed, Personal id: " + personalIdNo);
}
}
/**
* Create a Student Information
*/
public void TestApplication(String personalIdNo, String Surname, String Forename)
{
Student.add(Surname);
Student.add(Forename);
Student.add (personalIdNo);
}
/**
* Add Login
* Pull First Letter of Forenames
* Pull First Letter of Surname
* Generate Random Number
* Print
*/
public void addLogin(String Surname, String Forename)
{
String login = "";
{
System.out.println (Surname.charAt(0) + "" + " " + Forename.charAt(0) + " " + Math.round(Math.random()*999+1));
Student.add(login);
loginsIssued.add(login);
}
}
/**
* CONDITION 1
* Check whether the ID supplied is only numbers
*/
public boolean isNumeric(String personalIdNo)
{
if (personalIdNo.matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+")) {
return true;
}
else
{
return false;
}
}
/**
* CONDITION 2
* Check whether the ID supplied has a length of 10
*/
public boolean checkLength(String personalIdNo)
{
if (String.valueOf(personalIdNo).length()==10)
{
return true;
}
else
{
return false;
}
}
/**
* CONDITION 3
* Check whether the ID supplied starts with 1
*/
public boolean checkFirstDigit(String personalIdNo)
{
if (personalIdNo.startsWith("1"))
{
return true;
}
else
{
return false;
}
}
/**
* Validation Check - Check if it satisfies all conditions.
*/
public boolean isValidpersonalIdNo(String personalIdNo)
{
if (isNumeric(personalIdNo) && checkLength(personalIdNo) && checkFirstDigit(personalIdNo))
{
return true;
}
else
{
return false;
}
}
/**
* FORENAME
* Add Forename
*/
public void addForename(String Forename)
{
Student.add(Forename);
}
/**
* Return Surname
*/
public String getSurname()
{
return Student.get(0);
}
}
Ничего общего с вашей проблемой, но это плохая идея дать одноименное имя методу, чем классу. ('Public void TestApplication'). Вы могли бы подумать, что это конструктор. –
Для 1, какие параметры вы должны положить, что вы думаете, нелепо? – hichris123
Чего вы хотите достичь именно? Что должна делать ваша программа? В дополнение к вопросу о 1, у меня есть вопрос о 2: что вы намерены делать с вашим сгенерированным номером? Вы показываете его только на данный момент. Вы хотите использовать его для создания личного идентификатора? –