Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

199
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda