muito obrigado, vamos ver aqui vou estudar esse para implementar e posto aqui, obrigado mesmo
[code]
if(suaLista.size() != 0){
// pegando a utima sequência de sua lista pela sequência final que deve ser int, exe: ao salvar uma sequência ela deve ter seqInicial int, seqFinal int e sequencia String
// sua seqInicial = 1 seqFinal = 10 e sequencia = 010
// irá receber 10 da seqFinal
Integer seqFinalAnterior = utimoItemDeSuaLista.getSequenciaFinal();
// sequência atual se baseia pela nova quantidade que será adicionada ex: antes você gerou uma sequência de seqFinal = 10
// dessa forma você tem 10 + a nova quantidade que hipoteticamente é + 10
/// temos uma nova sequência final que é de 20
sequencia.setSeqFinal = seqFinalAnterior + quantidadeAdd
// como nossa ultima sequência foi até 010 o i = seqFinalAnterior + 1 porque 10 da sequência final anterior + 1 para começar a partir de 011
for (int i = seqFinalAnterior + 1; i <= sequenciaFinalAtual; i++) {
Integer valorAlocado = i;
// setando a nova sequencia
sequencia.setSequencia(completaZerosEsquerda(valorAlocado.toString(), 3));
}
}
// dessa forma se a lista não estiver preenchida ela vai adicionar do 0
else {
for (int i = 1; i <= quantidade; i++) {
Integer valorAlocado = i;
sequencia.setSequencia(completaZerosEsquerda(valorAlocado.toString(), 3));
}
}[/code]
tenta algo parecido para ver se da certo lembrado que a classe que tem a sequência deve ter seqInicial int, seqFinal int, sequencia String
Amigo eu fiz um exemplo completo da uma olhada
Vamos ver, o ultimo acho que não consegui implementar muito bem no projeto, estou vendo aqui oq pode estar de errado que eu tenha colocado
Sua classe, como é só um exemplo só tem os campos necessários
[code]public class Sequencia {
private int seqIncial;
private int seqFinal;
private String sequencia;
public int getSeqIncial() {
return seqIncial;
}
// getters e setters
public void setSeqIncial(int seqIncial) {
this.seqIncial = seqIncial;
}
public int getSeqFinal() {
return seqFinal;
}
public void setSeqFinal(int seqFinal) {
this.seqFinal = seqFinal;
}
public String getSequencia() {
return sequencia;
}
public void setSequencia(String sequencia) {
this.sequencia = sequencia;
}
}
[/code]
Você pode popular sua lista para testar
public class SequenciaTeste {
@SuppressWarnings("unused")
public static void main(String[] args) {
List<Sequencia> sequencias = new ArrayList<Sequencia>();
Sequencia sequencia = new Sequencia();
// compos que serão preenchidos
sequencia.setSeqIncial(1);
sequencia.setSeqFinal(10);
// verificando se a lista está vasia
if (sequencias.size() == 0) {
for (int i = 1; i <= sequencia.getSeqFinal(); i++) {
Integer valorAlocado = i;
// setar os valores da sequência em todas as sequências
sequencia.setSeqIncial(sequencia.getSeqIncial());
sequencia.setSeqFinal(sequencia.getSeqFinal());
sequencia.setSequencia(completaZerosEsquerda(valorAlocado.toString(), 3));
System.out.println(sequencia.getSequencia());
// adcionar uma sequência a uma lista de sequência
sequencias.add(sequencia);
}
} else {
// classe para pegar a ultima sequência adcionada na lista
Sequencia sequenciaAnterior = new Sequencia();
int utimoIndice = -1;
for (Sequencia entidade : sequencias) {
// calcular a quantidade de índice que a lista possui, para a utima sequência da lista,
utimoIndice = utimoIndice + 1;
}
// adcionado uma sequência da lista pelo índice
sequenciaAnterior = sequencias.get(utimoIndice);
// adcionar uma seqInicial e seqFinal que será adcionado a uma nova sequência a partir da ultima
// adcionado + 1 por causa que se a utima sequência for 010, vai começar a partir de 011
sequencia.setSeqIncial(sequenciaAnterior.getSeqFinal() + 1);
// seqFinal é basiado na nova quantidade se sequência :sequencia.getSeqFinal() + a quantidade da sequência final anterior :sequenciaAnterior.getSeqFinal()
// dessa forma se a anterior foi até 10 agora será o valor da nova sequência :10 + a anterior 10, então temos 20
sequencia.setSeqFinal(sequencia.getSeqFinal() + sequenciaAnterior.getSeqFinal());
for (int i = sequencia.getSeqIncial(); i <= sequencia.getSeqFinal(); i++) {
Integer valorAlocado = i;
// setar os valores da sequência em todas as sequências
sequencia.setSeqIncial(sequencia.getSeqIncial());
sequencia.setSeqFinal(sequencia.getSeqFinal());
sequencia.setSequencia(completaZerosEsquerda(valorAlocado.toString(), 3));
System.out.println(sequencia.getSequencia());
// adcionar uma sequência a uma lista de sequência
sequencias.add(sequencia);
}
}
}
// adcionar zeros a esquerda
public static String completaZerosEsquerda(String valor, int tamanho) {
String tmp = "";
for (int i = 0; i < tamanho - valor.length(); i++) {
tmp += "0";
}
return tmp + valor;
}
}
espero ter ajudado