Arrumar numeros de acordo com linha no Array

6 respostas
C

tenho varios numeros alguns se repetem, quero que os que se repitam possam ser colocados numa mesma linha e assim por diante, como faço??

por exemplo tenho 123,123,123,132,132,145,145,156,234,234,234,236,236,236.
os que são 123 vao pra linha tal, os que são 132 pra outra linha e assim por diante, alguém poderia me ajudar??

6 Respostas

maquiavelbona

Aí chega a grande pergunta: que linha?
Queres que eles não se repitam ou quando se repitam, sejam impressos sem quebra de linha?

Até!

C

que quebra de linha !!!
To falando do array.
Linha do array, quero que sejam colocados so os que se repetem na mesma linha em qualquer coluna…,.e assim por diante…entendeu??

ivo_costa

E os que não se repetem também vão ser colocados em linhas separadas? ou vão ser descartados?

A linha é importante? tipo os elementos 123 devem estar na linha 123 ou podem ficar em qualquer linha?

obs.: Cara eu acho que não pe legal tu ficar repetindo tópico.

Flw!

ViniGodoy

Você pode dar um exemplo de como gostaria que o array ficasse no final?

C

os números diferente ficariam em linhas diferentes, e os iguais na mesma linha.

tipo linha 0 ficaria só 123 123 123
linha 1 só 234…
linha 2 só 453, por exemplo!! mas não precisa ser uma linha especifica pra um número, só quero os mesmos numa mesma linha e diferentes em outras, tipo cada vez q vier um numero diferente vai pra outra linha

ViniGodoy

Bom, primeiro você tem que separar os números, ou pelo menos conta-los.

Eu faria com um map, como no exemplo abaixo:

import java.util.Map;
import java.util.TreeMap;

public class Numeros {
    public static void main(String[] args) {
        Map<Integer, Integer> contagens = new TreeMap<Integer, Integer>();
        int numeros[] = {123,123,123,132,132,145,145,156,234,234,234,236,236,236};
        
        //Usa um mapa para contar quantos elementos repetidos de cada tipo existem
        for (int numero : numeros) {
            if (!contagens.containsKey(numero)) //Não tem o número?
                contagens.put(numero, 1);       //Contamos 1          
            else                                //Já tem ?
                contagens.put(numero, contagens.get(numero) + 1); //Somamos 1
                
        }
                
        //Impressão dos números
        for (Map.Entry<Integer, Integer> contagem : contagens.entrySet()) {
            for (int i = 0; i < contagem.getValue(); i++)
                System.out.print(contagem.getKey() + " ");
            System.out.println();            
        }
    }
}

Se você precisar manter a lista dos números, considere usar um Map<Integer, List<Integer>> ao invés de um Map<Integer, Integer>.

A saída desse programa é:
123 123 123 
132 132 
145 145 
156 
234 234 234 
236 236 236
Criado 19 de novembro de 2007
Ultima resposta 20 de nov. de 2007
Respostas 6
Participantes 4