Añadiendo elementos a un hashmap -- java campo con hashmap camp Relacionados El problema

Adding elements to an hashmap


0
vote

problema

Español

Así que tengo un problema con HashMaps y una función de inicio de sesión.

  1. Cuando se utiliza Addlogin, estoy obligado a ingresar parámetros, pero no tiene sentido hacerlo, ya que ya lo he hecho en las clases de constructor. ¿Cómo simplemente solo usaría Addlogin y el apellido, el nombre del nombre y el nombre de identificación personal se agrega al hashmap?

  2. Al usar matemath.round (math.random () * 999 + 1) Para generar un número aleatorio entre 1-999, ¿cómo se supone que debo ir a agregar esto al hashmap con los otros detalles del estudiante?

¡Aquí está el código completo que se aplica a ambas preguntas, disculpas por las preguntas estúpidas. Soy muy nuevo en Java! Estoy muy agradecido de cualquier ayuda que recibo. Gracias por adelantado.

  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); }   

}

Original en ingles

So I have an issue with Hashmaps and a login feature.

  1. When using addLogin I am required to enter parameters but it makes no sense to do this since I have already done this in the constructor classes. How would I simply just use addLogin and the Surname, Forename and Personal ID number is added to the hashmap?

  2. Upon using Math.round(Math.random()*999+1) to generate a random number between 1-999 how am I supposed to go around adding this to the hashmap with the other student details?

Here is the full code that applies to both questions, apologies for the stupid questions I'm very new to Java! I am very appreciative of any help I recieve. Thanks in advance.

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); } 

}

     
         
         

Lista de respuestas

0
 
vote

con respecto a su primera pregunta En la inicialización, supongo que solo desea darle a la cadena un valor que normalmente lo logras a través de la escritura Cadena de inicio de sesión = nulo; Pero estoy tranquilo, no estoy seguro de lo que quiere lograr con el vacío ""

y no obtengo por qué no le da su inicio de sesión un valor antes de agregarlo a la lista de array o debe ser este el inicio de sesión por defecto Public Void Addlogin (apellido de cadena, cadena de nombre)

  Enumerable.SequenceEqual2  

y al igual que una propina Si devuelve boolean a sus métodos de ecualización, no necesita registrarse en las cláusulas de IF si True == VERDADERO porque la cláusula de IF comprueba si lo haces, sí, sí, es verdad == verdadero y devuelve VERDADERO si Me gusta esto, ¿obtienes mi punto? Guardarás recursos si no haces esto dos veces :) Así que simplemente escriba su método que devuelve el valor booleano en los tirantes. Espero poder ayudarte
PLS Comentario Si necesita más información

 

Concerning to your first question At the initialisation i guess you just want to give the string a value normally you achieve this through writing String login= null; But I'm quiet not sure what you want to achieve with the empty ""

And i dont get why you dont give your login a value before you add it to the arraylist or should be this the login by default public void addLogin(String Surname, String Forename)

String login = null; {     System.out.println (Surname.charAt(0) + "" + " " +         Forename.charAt(0) + " " +        Math.round(Math.random()*999+1));     Student.add(login);     loginsIssued.add(login);  } 

And just as a tip if you return boolean at your equalization methods you dont need to check in the if clauses if true == true because the if clause checks if you do it your way wether true ==true and returns true if it like this do you get my point? you 'll save resources if you dont do this twice :) So just write your method which returns the boolean value in the if braces . I hope i can help you
Pls comment if you need further informations

 
 
0
 
vote

Para ser honesto, creo que debería haber algunas repeticiones para solucionar su código (lamento no responder directamente a usted dos preguntas, pero es imposible como es):

  1. fijar el segundo constructor, que se declara como un método
  2. Crear un Student CLASE: Es más difícil recuperar los campos por índice y el riesgo es agregar dos veces el mismo campo o para menos agregar un campo.
  3. A menos que no entienda completamente lo que debe lograr su código, el problema principal es un error de diseño: su clase administra todo el conjunto de estudiantes y su inicio de sesión, por lo tanto, la variable de instancia de estudiantes es un tonterías, así como los constructores con un solo campos de estudiantes. En su lugar, debe crear un método function initialize() { var map = new google.maps.Map(document.getElementById("map_canvas")); var kmlLayer = new google.maps.KmlLayer({ url: "http://www.geocodezip.com/geoxml3_test/kmz/Mississauga.kmz", map: map }) } google.maps.event.addDomListener(window, "load", initialize);2 con los campos de los estudiantes como parámetro o mejor una instancia de estudiante.
  4. No entiendo el uso de "" + " " tampoco.

Por consiguiente, para responder a sus preguntas:

  1. Puede mantener su método addLogin y, si es así, sí, debe mantener toda la información, pero puede usar un objeto de estudiante (o una colección que actualmente modele un estudiante) como parámetro. < / li>
  2. Si actualiza el mismo estudiante (la misma instancia de objeto), por supuesto, está actualizado en su mapa. Si no, (utiliza una copia del estudiante), simplemente ejecute Application.put(personId,Student) . Echa un vistazo a este responder R para obtener más información
 

To be honest, I think there should be some rework to fix your code (sorry to not answer directly to you two questions but is impossible as is):

  1. Fix the second constructor, which is declared as a method
  2. Create a Student class: it is harder to retrieve fields by index and the risk is to add twice the same field or to miss adding one field.
  3. Unless I don't fully understand what your code should achieve, the major issue is a design error : your TestApplication class manages the whole set of students and their login thus the Student instance variable is a nonsense as well as the constructors with a single student fields. You should instead create an addStudent method with the student fields as parameter or better a Student instance.
  4. I don't understand the use of "" + " " either.

By consequence, to answer to your questions:

  1. You can keep your addLogin method and if so, yes you have to keep all the info but you can use a Student object (or a Collection as you currently modelise a student) as parameter.
  2. If you update the same Student (same object instance), it is of course updated in your map. If not(you use a copy of Student) then just execute Application.put(personId,Student). Have a look at this answer to get more info
 
 

Relacionados problema

119  Mapa contra hash_map en C ++  ( Map vs hash map in c ) 
Tengo una pregunta con hash_map y map en C ++. Entiendo que map está en STL, pero hash_map no es un estándar. ¿Cuál es la diferencia entre los dos? ...

2  Mapero de Hadoop sobre el consumo de memoria (montón)  ( Hadoop mapper over consumption of memoryheap ) 
Escribí un simple programa de unión de hash en el mapa de Hadoop. La idea es la siguiente: Una mesa pequeña se distribuye a todos los MAPPER utilizando Dist...

0  Estructura de datos / función de hash para vincular conjuntos de ints para valorar  ( Data structure hash function to link sets of ints to value ) 
Dado N ID de entero, deseo vincular todos los conjuntos posibles de hasta k ID a un valor constante. Lo que estoy buscando es una forma de traducir con lo...

6  Obtener la clave usando el valor de un objeto en JavaScript?  ( Get key using value from an object in javascript ) 
c = { "UNKNOWN_ERR" : 0, "INDEX_SIZE_ERR" : 1, "DOMSTRING_SIZE_ERR" : 2, "HIERARCHY_REQUEST_ERR" : 3, ...

32  Java: Llave compuesta en Hashmaps  ( Java composite key in hashmaps ) 
Me gustaría almacenar un grupo de objetos en un hashmap, donde la clave será un compuesto de dos valores de cadena. ¿Hay alguna manera de lograr esto? Simpl...

2  Utilice la clase personalizada en HashMap en Android  ( Use custom class in hashmap in android ) 
Editar: Lo he publicado anteriormente para Java. Pero trabajando en Java pero no en Android. Así que estoy publicando el código de Android ahora. Estoy trat...

0  Almacenamiento de varias clases en un hashmap  ( Storing multiple classes in a hashmap ) 
Tengo varias clases en común que todos implementan la misma interfaz que me gustaría para manejar a través de un solo hashmap. Pero las clases no usan las m...

2  Agregue múltiples valores a la clave en HashTable  ( Add multiple values to key in hashtable ) 
Necesito ayuda con agregar descripción a SityType en el código a continuación. Ahora puedo agregar solo una palabra a RoomType , pero quiero poder agregar ...

1  Mapa desordenado almacenando objeto vs puntero (como valor)  ( Unordered map storing object vs pointer as value ) 
¿Cuál sería una forma más eficiente para almacenar objetos en la "STD :: OTROREDED_MAP" cuando se involucrarán muchas operaciones de borrado e inserción? Me g...

1  Claves y valores múltiples  ( Multiple keys and values ) 
Estoy un poco atascado en un proyecto .. Básicamente, obtengo un directorio para escanear los archivos que pasan ciertos filtros. Los archivos de comando co...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos