Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

216
Vistas
¿Alguien puede decirme si estoy usando el código adecuado para imprimir las ocurrencias en este ArrayList?

De acuerdo, entonces lo que estoy tratando de hacer es revisar el ArrayList llamado theDateArray, hacer una búsqueda de un elemento en particular en esa lista y mostrar cuántas veces aparece ese elemento. Cuando lo pruebo en la clase principal, solo genera el número 0 sin importar la fecha que ingrese como una Cadena. Aquí hay parte de la clase en la que están los métodos. No creo que a partir de ahora sea necesario incluir toda la clase a menos que sea confuso...

 public ArrayList<String> getTicketDates(){ int i; for (i=0; i <tickets.size(); i++){ if(tickets .get(i).getPurchased()== false){ theDateArray.add(tickets.get(i).getDate()); } } for(int f=0; f<theDateArray.size();f++){ System.out.println(theDateArray.get(f)+ " "); } return theDateArray; } public int getTickets(String date){ int tix= theDateArray.indexOf(date); int occurrences= Collections.frequency(theDateArray, tix); if (tix>=0){ System.out.println(occurrences); } return occurrences; }

Aquí están los boletos inventados que estoy probando en mi clase de prueba....

 public class AmusementParkTester { public static void main(String[] args) { AmusementPark park1= new AmusementPark("Walden University Park"); park1.addTicket(777, "Child", "Noah Johnson","2017-06-09" , 27.99, false); park1.addTicket(777, "Child", "Zachary Gibson","2017-06-09" , 27.99, false); System.out.println("The dates in which tickets are available are as follows: "); park1.getTicketDates(); park1.getTickets("2017-06-09"); } }

Aquí está la salida que estoy obteniendo ...

 The dates in which tickets are available are as follows: 2017-06-09 2017-06-09 0

Quiero que el 0 sea un 2.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Creo que estas líneas son tu error:

 int tix= theDateArray.indexOf(date); int occurrences= Collections.frequency(theDateArray, tix);

Está buscando la frecuencia del índice de su fecha, por lo que en su ejemplo, el primer índice de la fecha 2017-06-09 podría ser el índice 0. Entonces, cuando haces Collections.frequency ... estás buscando la frecuencia de 0 dentro de tu matriz de fechas, a la que devuelve 0 (sin ocurrencias).

Yo intentaría cambiarlo a

 // find the number of occurrences of your passed in date within the date array int occurrences = Collections.frequency(theDateArray, date)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda