Transformar Lista de double em Lista de string

12 respostas
jeovane.reges

Boa tarde a todos do GUJ.

Bom pessoal, gostaria de saber como que faço para transformar uma Lista que está em double ser interpretada com uma Lista de String.
Sei que usando o seguinte abaixo, consigo transformar um elemento do tipo double em um do tipo String.

double unitario_final = Double.toString(valor);

Mas, uma lista, como que faço?
Desde de já obrigado pela ajuda de todos.

12 Respostas

drsmachado

Se você está usando generics, não muda.

List<Double> lista = new ArrayList<Double>();

Crie uma nova lista.
Se não está, não precisa, a List suporta qualquer objeto

List lista = new ArrayList();
jeovane.reges

Olá drsmachado, minha ArrayList esta da seguinte maneira abaixo.

ArrayList<Double> c1;
c1 = new ArrayList<Double>();
jeovane.reges

Tenho o seguinte metodo abaixo, onde passo um ArrayList, no entanto, estou buscando uma coluna de um arquivo, onde os elementos são do tipo Double e o que eu gostaria de fazer era com que essa ArrayList fosse interpretada como uma do tipo String, entendeu?

public class ClassFrequencia
{
    public static void getFrequenciaIris(ArrayList<String> c)
    {
        while (c.size() != 0)
        {
            int count = 0;
            String nome = c.get(0);

            for (int i = 0; i < c.size();)
            {
                if(nome.equals(c.get(i)))
                {
                    count++;
                    c.remove(i);
                }
                else { i++; }
            }

            System.out.println("Nome: " + nome + " Frequência: " + count);
        }
    }
drsmachado

jeovane.reges:
Olá drsmachado, minha ArrayList esta da seguinte maneira abaixo.

ArrayList<Double> c1; c1 = new ArrayList<Double>();

Você está determinando o tipo de dados que a List irá portar.
Qual a razão para esta lista de String?

jeovane.reges

Como citei acima, porque irei passá-la em uma função onde este recebe um ArrayList de String e não de Double.

drsmachado

Sinceramente, não sei qual gambiarra você pretende.
Mas um nome, ao meu entender, nunca será um Double.
Ou seja, jamais virá desta lista que você tem.

drsmachado

Se você precisa de uma coleção de Double, utilizar uma List faz todo sentido. É mais prático e funcional.
Agora, não entendi o objetivo de ter um ArrayList e você, tendo um método cujo parâmetro é um ArrayList insistir em querer passar o primeiro.
Aliás, tua lógica está confusa, pelo que citei anteriormente, em que planeta o nome será um double?

jeovane.reges

Esse mesmo metodo recebe valores de outros dois Datasets onde o ArrayList<> é do tipo String, então no terceiro Dataset é do tipo Double o ArrayList.

Então o que eu gostaria era de fazer com que os elementos desse terceiro Dataset fosse interpretado como do tipo String, pois assim não haveria necessidade de criar um outro metodo.

Enfim, a maneira que fiz que dar certo, foi criar um outro metodo onde passasse nesse um ArrayList.

O que eu gostaria era de ter reaproveitado, o codigo que citei acima, pois a unica coisa que foi mudada foi o parâmetro que é passado nele.

drsmachado

Um método pode ser assinado da seguinte forma

public static void MetodoRecebeGeneric(ArrayList<?> list){/*
lógica aqui
*/}

Ou seja, você não precisa duplicar código, só alterar o tipo de parâmetro que esse recebe…
Ou criar uma nova String e ir convertendo em um laço for

nel

Oi,

não encontrei outra solução a não ser percorrer a lista e ir convertendo valor a valor.

List<String> result = new ArrayList<String>(); for(Double value : listaDeDouble) result.add(String.valueOf(value));

Não vou nem me atentar a sua necessidade, como está implementando as coisas, porque precisa disso e etc, só dei a solução :slight_smile:
Há melhores, sem dúvidas, mas ai é com você.

Abraços.

jeovane.reges

nel Hehe

Sem dúvidas que preciso, por isso estou implementando, e como as dúvidas estão surgindo ai corro aqui para o Forum.

Mais suas dicas assim como dos outros que tem colaborado tem me ajudado bastante :slight_smile: e contribuindo muito mais ainda para o meu aprendizado :smiley:

Quanto a solução proposta, tenho apenas uma última dúvida (creio eu).

Como que faço para verificar se os elementos que estou recebendo são String ou Double?

Pois, vejo necessidade de passar por esse FOR que voce citou acima apenas se for Double os meus valores, correto?

nel

jeovane.reges:
nel Hehe

Sem dúvidas que preciso, por isso estou implementando, e como as dúvidas estão surgindo ai corro aqui para o Forum.

Mais suas dicas assim como dos outros que tem colaborado tem me ajudado bastante :slight_smile: e contribuindo muito mais ainda para o meu aprendizado :smiley:

Quanto a solução proposta, tenho apenas uma última dúvida (creio eu).

Como que faço para verificar se os elementos que estou recebendo são String ou Double?

Pois, vejo necessidade de passar por esse FOR que voce citou acima apenas se for Double os meus valores, correto?

Sim, isso ali foi simplesmente para fazer uma conversão de um Long para String, como você pediu.
Caso contrário, terás de fazer uma Lista de Object e depois converter para String, já que ela aceita isso.
Se quiseres converter para um Object para um Long, Integer e etc, ai o buraco é mais embaixo e requer algo mais “sofisticado”.

Criado 4 de outubro de 2011
Ultima resposta 4 de out. de 2011
Respostas 12
Participantes 3