Tem como aumentar o tamanho de uma sequentiallist sem perder os dados contidos nela
SequentialList l = new SequentialList(10);
.
.
.
.
SequentialList l = new SequentialList(20);
Tem como aumentar o tamanho de uma sequentiallist sem perder os dados contidos nela
SequentialList l = new SequentialList(10);
.
.
.
.
SequentialList l = new SequentialList(20);
Tem como aumentar o tamanho de uma sequentiallist sem perder os dados contidos nelaSequentialList l = new SequentialList(10); . . . . SequentialList l = new SequentialList(20);
Cara, nem sabia q isso existia, mas vc pode usar a classe ArrayList
public static void main(String[] a){
ArrayList<String> lista = new ArrayList<String>();
lista.add("Alberto");
lista.add("Aline");
System.out.println(lista.size()); //2
lista.add("Fulano");
lista.add("Beutrano");
System.out.println(lista.size()); // 4
lista.remove("Alberto");
System.out.println(lista.size()); // 3
lista.clear();
System.out.println(lista.size()); // 0
}
espero ter ajudado!
Essa classe não é uma classe padrão do Java. Ela é uma collection, é um array, classe normal? O quê?
Não é padrao
Seque o codigo da mesma.
public class SequentialList {
protected Object list[];
protected int last=-1;
/* Construtor */
public SequentialList (int size){
list = new Object[size];
}
/* Retorna o elemento na posição especificada. */
public Object get (int index){
if (index<0 || index>last) return null;
else return list[index];
}
/* Retorna true se o elemento foi inserido no final da lista, false caso
contrário. */
public boolean add (Object o) {
if (isFull()) return false;
last++;
list[last]=o;
return true;
}
/* Retorna true se o elemento foi inserido na lista, false caso
contrário. Insere o elemento na posição especificada */
public boolean add (Object o, int pos) {
if (isFull()) return false;
for (int i=last+1; i>pos; i--) {
list[i]=list[i-1];
}
last++;
list[pos]=o;
return true;
}
/* Remove o elemento na posição especificada */
public Object remove (int index) {
if (isEmpty()) return null;
else if (index<0 || index>last) {
System.out.println ("Indice nao existente!");
return null;
}
Object o = list[index];
int numberofElements = last - index ;
if (numberofElements > 0) {
System.arraycopy(list, index + 1, list, index, numberofElements);
}
list[last] = null; /* to let gc do its work */
last--;
return o;
}
/* Verifica se a lista está vazia: não tem elementos */
public boolean isEmpty (){
if (last==-1) return true;
else return false;
}
/* Verifica se a lista está cheia: todas as posições do vetor interno
estão ocupadas */
public boolean isFull (){
if (last==list.length-1) return true;
else return false;
}
/* Retorna o número de elementos da lista */
public int getSize() {
return last+1;
}
//Mostra todos os elementos da lista
public void print(){
for (int i=0; i<=last; i++){
System.out.println(list[i]);
}
}
}
Para aumentar o tamanho você terá que criar um array de Object maior que o atual e copiar todo o conteúdo do array atual para o novo.
Outra forma é implementar uma espécie de lista encadeada, quando ele chegar ao fim de um array(ou nó da lista), ele automaticamente irá para o começo de outro, e continuará de lá.
A primera forma é mais fácil.
Não seria mais fácil usar um LinkedList ao invés de um vetor?
Como eu posso fazer uma comparacao de um elemento de um objeto sabendo que minha lista contem numeros?
SequentialList l = new SequentialList(10);
if(l.get(0) < 5)
use isso:
if( ((Number)l.get(0)).doubleValue() < 5 )