Como usar ultimo indice de um Array como condição de para em um FOR

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”:smirk:

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:

  • Nomes de classes, métodos, atributos e constantes sempre auto descritivos e seguindo o padrão javaBeans
  • Nomes de classes sempre iniciam em letras maiúsculas
  • Nomes de métodos e atributos sempre em letras minúsculas
  • Nomes de constantes são sempre escritos com todas as letras maiúsculas
  • Classes, métodos e atributos com nomes compostos são todos unidos, seguindo a regra do camelCase
  • Nomes compostos de constantes são unidos por underline (_)

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.