Preciso duplicar o conteúdo de uma pilha como faço isso
public class Pilha<T> {
private LinkedList<T> objetos = new LinkedList<T>();
public void insere(T t) {
this.objetos.add(t);
}
Preciso duplicar o conteúdo de uma pilha como faço isso
public class Pilha<T> {
private LinkedList<T> objetos = new LinkedList<T>();
public void insere(T t) {
this.objetos.add(t);
}
[quote=carlosuniverso]Preciso duplicar o conteúdo de uma pilha como faço isso
public class Pilha<T> {
private LinkedList<T> objetos = new LinkedList<T>();
public void insere(T t) {
this.objetos.add(t);
}
[/quote]
Olá Carlos.
Bom se eu entendi a sua dúvida, é muito simples.
Depois que já tem a sua lista, é só fazer assim:
LinkedList<T> objetos2 = objetos;
Assim você tem duas listas iguais.
[quote=Artur Martini][quote=carlosuniverso]Preciso duplicar o conteúdo de uma pilha como faço isso
public class Pilha<T> {
private LinkedList<T> objetos = new LinkedList<T>();
public void insere(T t) {
this.objetos.add(t);
}
[/quote]
Olá Carlos.
Bom se eu entendi a sua dúvida, é muito simples.
Depois que já tem a sua lista, é só fazer assim:
LinkedList<T> objetos2 = objetos;
Assim você tem duas listas iguais.[/quote]
Na verdade assim você tem duas referências pro mesmo objeto.
Quando você diz “duplicar o conteúdo de uma pilha” você quer dizer criar outra pilha com o mesmo conteúdo ou a mesma pilha com o conteúdo duplicado?
[quote=di.magdaleno][quote=Artur Martini][quote=carlosuniverso]Preciso duplicar o conteúdo de uma pilha como faço isso
public class Pilha<T> {
private LinkedList<T> objetos = new LinkedList<T>();
public void insere(T t) {
this.objetos.add(t);
}
[/quote]
Olá Carlos.
Bom se eu entendi a sua dúvida, é muito simples.
Depois que já tem a sua lista, é só fazer assim:
LinkedList<T> objetos2 = objetos;
Assim você tem duas listas iguais.[/quote]
Na verdade assim você tem duas referências pro mesmo objeto.
Quando você diz “duplicar o conteúdo de uma pilha” você quer dizer criar outra pilha com o mesmo conteúdo ou a mesma pilha com o conteúdo duplicado?[/quote]
É verdade, me esqueci deste detalhe.
Também fiquei com a mesma dúvida rsrsrs
[code]LinkedList lista1 = new LinkedList();
LinkedList lista2 = new LinkedList();
String a = "Primeira";
lista1.add(a);
String b = "Segunda";
lista1.add(b);
lista2.addAll(lista1); // Copiando os dados da lista1 para lista2
System.out.println("Lista um: " + lista1); // Aqui temos duas listas
// diferentes com o mesmo
// conteúdo
System.out.println("Lista dois: " + lista2); // Aqui temos duas listas
// diferentes com o
// mesmo conteúdo
lista1.remove(1); // removento o prmeiro item da lista1 para mostrar que
// são diferentes
System.out.println("Lista um: " + lista1.toString()); // Mostrando que
// as listas são
// diferentes
System.out.println("Lista dois: " + lista2.toString()); // Mostrando que
// as listas são
// diferentes
lista1.removeAll(lista2); // limpando a lista1
lista1.addAll(lista2); // adicionando a lista2 na lista1
lista2.addAll(lista1); // duplicando a lista1
System.out.println(lista2); // Uma lista com seus elementos duplicados[/code]
Análise o código e tente entender.
Como ficamos na dúvida se você queria duas pilhas com o mesmo conteúdo ou o uma pilha com o conteúdo duplicado, este exemplo abrange os dois casos.
Espero ter ajudado.
Artur Martini
Seguinte está pilha tem que ter comportamento dinamico. Quando eu falo eu duplicar seria mais ou menos assim:
primeira pilha: 1234
segunda pilha: 12341234
Pelo que eu entendi devo usar duas pilhas fixas: p1 e p2 e dois auxiliares: aux1 e aux2 e um contador pois não posso determinar o tamanho de elementos para pilha
topo = aux1;
aux2 = aux1;
cont++;
Só que eu não sei como
Artur Martini,
Testei o código e é isso aí. No caso eu só preciso preencher a lista1 e devolver na lista 2 os elementos da lista 1 + o da 2. Perfeito. Você fez com String para números como fica? No caso cabe um “cont” pois não quero determinar a quantidade exata de valores que ficaram armazenados na pilha?
Obrigado, e valeu pela ajuda.
[quote=carlosuniverso]Artur Martini,
Testei o código e é isso aí. No caso eu só preciso preencher a lista1 e devolver na lista 2 os elementos da lista 1 + o da 2. Perfeito. Você fez com String para números como fica? No caso cabe um “cont” pois não quero determinar a quantidade exata de valores que ficaram armazenados na pilha?
Obrigado, e valeu pela ajuda.
[/quote]
Olá, para números fica da mesma maneira é só trocar o tipo dentro do Generics <>.
Quando trabalhamos com listas temos a vantagem de ter um tamanho dinâmico, ou seja, você pode adicionar de acordo com sua necessidade, diferente de Array que é preciso especificar o tamanho.
Artur Martini e amigos tem como o
[code]LinkedList lista1 = new LinkedList();
LinkedList lista2 = new LinkedList();
String a = "Primeira";
lista1.add(a);
String b = "Segunda";
lista1.add(b);
lista2.addAll(lista1); // Copiando os dados da lista1 para lista2
System.out.println("Lista um: " + lista1); // Aqui temos duas listas
// diferentes com o mesmo
// conteúdo
System.out.println("Lista dois: " + lista2); // Aqui temos duas listas
// diferentes com o
// mesmo conteúdo
lista1.remove(1); // removento o prmeiro item da lista1 para mostrar que
// são diferentes
System.out.println("Lista um: " + lista1.toString()); // Mostrando que
// as listas são
// diferentes
System.out.println("Lista dois: " + lista2.toString()); // Mostrando que
// as listas são
// diferentes
lista1.removeAll(lista2); // limpando a lista1
lista1.addAll(lista2); // adicionando a lista2 na lista1
lista2.addAll(lista1); // duplicando a lista1
System.out.println(lista2); // Uma lista com seus elementos duplicados
[/code]
ser feito sem arraylist ou qualquer forma de array?
Obrigado