Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
Agregar valores iguales en un ArrayList en Android

Estoy almacenando puntuaciones en una ArrayList , pero cuando el usuario tiene una puntuación igual a una puntuación anterior, la segunda no se agrega a la ArrayList. ¿Cómo puedo agregar valores iguales a una ArrayList (o usar otro tipo de Lista)?

Código:

 [...] ArrayList<String> savedArray = new ArrayList<>(); Set<String> gandula = new HashSet<>(); [...] public Preferencias(Context contextoParametro) { contexto = contextoParametro; preferences = contexto.getSharedPreferences(NOME_ARQUIVO, MODE); editor = preferences.edit(); } public void addMediaGeral(double mediaGeral) { //Save Score Set<String> set = new HashSet<String>(); if (!getMediaGeral().get(0).equals("0")) { savedArray.addAll(getMediaGeral()); } savedArray.add(String.valueOf(mediaGeral)); set.addAll(savedArray); editor.putStringSet(KEY_MEDIA_GERAL, set); editor.commit(); } public ArrayList<String> getMediaGeral(){ //get score Set<String> set = preferences.getStringSet(KEY_MEDIA_GERAL, gandula); ArrayList<String> list = new ArrayList<String>(set); return list; } [...]

Recuperando en mi actividad:

 [...] mediaGeral = score; preferencias.addMediaGeral(Double.parseDouble(mediaGeral)); [...] ArrayList<String> string_medias = new ArrayList<>(); string_medias = preferencias.getMediaGeral(); ArrayList<Float> float_medias = new ArrayList<>(); for (int j = 0; j < string_medias.size(); j++){ float_medias.add(Float.parseFloat(string_medias.get(j))); } Log.i("TESTANDO PRF", "TAMANHO DA LISTA: "+float_medias.size()); Float[] dataObjects = float_medias.toArray(new Float[float_medias.size()]); doChart(float_medias); [...]

Obtuve 0.33333 tres veces (configuraré decimales) pero solo muestra una puntuación de 0.3333.

Pantalla de impresión: http://prntscr.com/f1vx3h

Pero el gráfico acepta duplicados. Printscreen: http://prntscr.com/f1vxng (manipulé las puntuaciones en la última printscreen).

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

ArrayList acepta duplicados, este no debería ser su problema, pero vi que su puntaje de tienda en un HashSet usa un hashMap porque:

En el caso de HashMap, reemplaza el valor anterior por el nuevo.

En el caso de HashSet, el elemento no se inserta.

over 4 years ago · Santiago Trujillo Report

0

Un conjunto no permite valores duplicados.

Haciendo esto:

 set.addAll(savedArray);

descarta todos sus duplicados.

Estas respuestas pueden ser de ayuda.

Guardar un objeto JSON como una cadena en las preferencias probablemente sea el camino a seguir.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!