Gostaria de saber como usar o valor que se encontra no ultimo indice de um Array como condição de para em um FOR.
ArrayList F;
F = getObs();
F.get(F.size()-1);
for (double i = 0; i < F; i+=k){
}
Gostaria de saber como usar o valor que se encontra no ultimo indice de um Array como condição de para em um FOR.
ArrayList F;
F = getObs();
F.get(F.size()-1);
for (double i = 0; i < F; i+=k){
}
Coloca isso
F.get(F.size()-1) no lugar do F
Nao consigo usar operadores para definir a parada.
for (double i = 0; i <= F.get(F.size()-1); i+=k){
}
Não tenho tanta certeza mas você precisaria estruturar dados em um vetor , buscando elementos e tamanho , acho que da forma que está não é valida.
A sua lista tem que ser tipada, ou seja, você tem que definir um tipo a ela
Ex:
List<Integer> lista = new ArrayList<>();
O código acima diz que a sua lista é uma lista de inteiros, ela só terá valores inteiros.
Com o jeito que você estava fazendo era possível adicionar qualquer objeto a lista, ai não era possível fazer o que você queria, pois só daria para saber o valor do index da lista em tempo de execução.
E outra, deixe o nome dos seus objetos/métodos bem claros e se precisar comente, pois fica mais fácil para uma outra pessoa ler e entender, e consequentemente a solução virá mais rápida.
Isso é aceitável ?
for (double i = 0; i <= F.get(F.size()-1); i+=k){
}
Aceitável de que forma?
Pro compilador? Sim
Coloque aqui , seu código demonstrando o que se quer fazer ?
Baseado nesse código , implementa aqui esse controle de fluxo que você sugeriu(for (double i = 0; i <= F.get(F.size()-1); i+=k)) , quero testar aqui no Eclipse, se lhe der trabalho , vamos deixar o ZeroCold, explicar melhor seus objetos e métodos.
public class Teste3 {
public static void main(String[] args) {
ArrayList<Integer> lista = new ArrayList<>();
for (int i = 0; i < 100; i++) {
lista.add(i);
}
for (int i = 0; i < lista.size(); i++) {
if (lista.get(i) % 2 != 0) {
lista.remove(i);
}
}
System.out.println(lista.toString());
}
}
O que estou tentando fazer é, pegar o valor que esta no ultimo indice do Array. O Array é de numero Double.
O que quero é extrair este ultimo valor para que eu possa usar como condição de parada do FOR.
“Achei que não veria mais você, mas aproveita e tenta aprender alguma coisa”
Vamos por partes:
Um ArrayList, sempre que instanciado, possui um tamanho, que pode ser obtido pela invocação do método size().
O que acontece é que você fez uma confusão aqui:
Ou F (sério mesmo que você nomeia variáveis sem um nome auto explicativo e maiúsculo?) é um objeto de ArrayList ou é um int. Os dois, não dá.
Assim sendo, creio que o ideal seria
ArrayList lista = getObs();
int size = lista.size();
for(int i = 0; i < size; i++) {
if(i + 1 == size) { //Este é o último elemento, quando a enésima posição + 1 é igual ao tamanho da lsita
//Faz o que tem que fazer
}
}
Entendeu?
List<Integer> list = new ArrayList<>();
list.add(7);
list.add(10);
list.add(20);
int lastValue = list.get(list.size() - 1);
for(double i = 0; i < lastValue; i++) {
System.out.println(i);
}
Esse código vai ser executado 20 vezes
Ele quer pegar o valor do ultimo índice e coloca-lo como condição do for
Uma outra forma de fazer isso:
ArrayList lista = getObs();
double last = lista.get(lista.size() - 1); //Pegando o valor contido na última posição do array
Deu certo. O “F” é de frequência pra um calculo de estatística que no calculo é definido como F.
Muito obrigado =)
A questão da nomenclatura não é preciosismo, é baseada em uma série de convenções que visam o melhor entendimento de um sistema.
Basicamente, você deve ter:
Assim sendo, seria interessante, apenas a título de padrão convencionado, colocar o nome como “frequencia” e não apenas “F”…
Mas, isso é apenas uma dica.
Agora sim, isso é possivel , na primeira implementação sugerida não for (double i = 0; i <= F.get(F.size()-1); i+=k) , no seu exemplo ficou mais claro
Entendi, ficou mais objetivo do que o controle de fluxo proposto for (double i = 0; i <= F.get(F.size()-1); i+=k){
}
Obrigado Darlan, ainda sou muito novo no java, e ainda não internalizei algumas regras da Boa pratica de programação.
Vivendo e aprendendo =D
Cara, faz como você achar mais adequado. Boas práticas você pega com o tempo e vai assimilando e adequando ao que você precisa.
Quando achar que está preparado, sugiro que leia o livro clean code do uncle “Ben”. Muito bom para entender boas práticas.