Comparação de posições do vetor

No código abaixo, por favor me informem onde estão os erros.
Quando indico a PA de teste 2, 4, 6, 8, 10, ele informa que é PA
Quando indico qualquer outro valor também informa que é PA
Quando coloco a PG 3, 15, 375, 1875, ele também informa que é uma PA

O que eu faço?

import java.util.Scanner;

/*   Escreva uma aplicação que deverá receber uma sequencia de 05 valores 
 *   numéricos que poderá ser uma progressão aritmética ou uma progressão
 *   geométrica, esta aplicação deverá identificar qual é a progressão.
 */

public class Exercicio {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int vet[] = new int[5];
		int i = 0, teste1, teste2, teste3, teste4;
		
		for (i = 0; i < vet.length; i++) {
			System.out.print("Entre com o "+(i+1)+"º valor: ");
			vet[i] = sc.nextInt();
		}
		//identifica PA
		teste1 = (vet.length + vet[0]);
		System.out.println("Teste1: "+teste1);
		teste2 = (vet[0]+1 + vet.length-1);
		System.out.println("Teste2: "+teste2);

		//identifica PG
		teste3 = ((vet.length) / ((vet.length)-1));
		System.out.println("Teste3: "+teste3);
		teste4 = ((vet[1]) / (vet[0]));
		System.out.println("Teste4: "+teste4);

		if(teste1 == teste2){
			System.out.println("PA");
		}else{
			if(teste3 == teste4){
				System.out.println("PG");
			}else{
				System.out.println("Não é uma progressão");
			}
		}
	}
}

Sua dificuldade é com matemática. Em uma PA, nós temos que a diferença entre dois termos consecutivos é igual a uma constante, que chamarei de “r”. Assim, para saber se uma sequencia representa uma PA, você deve verificar todos os termos e vê se a regra

vet[n] - vet[n-1] = r;

vale para a sequência inteira.

No caso de uma PG, a razão entre dois termos consecutivos é uma constante que chamarei de q. Sendo assim, para saber se a sequência forma uma PG você deve avaliar se a seguinte regra vale para todos os elementos:

vet[n] - vet[n-1] = q;

Em ambos os casos, você pega os dois primeiros termos do seu vetor e obtém a constante necessária para avaliar as progressões (constante essa que é chamada de razão). Depois é só iterar pelo vetor e vê se a razão entre os termos consecutivos se mantém constante.

Se vc quer comparar o conteúdo dos arrays tem utilizar (teste1.equals(teste2))
Um array em java é um objeto e representa uma referencia na memória então se vc comparar teste1 == teste2
Estará comparando a posição na memória e é claro que são diferente pois cada um ocupa uma posição diferente na memório.

[quote=Demys Cota]Se vc quer comparar o conteúdo dos arrays tem utilizar (teste1.equals(teste2))
Um array em java é um objeto e representa uma referencia na memória então se vc comparar teste1 == teste2
Estará comparando a posição na memória e é claro que são diferente pois cada um ocupa uma posição diferente na memório.[/quote]
Isso está errado. O programa dele não funciona porque a lógica está errada. Para tipos primitivos ele pode fazer a comparação usando ==. Se fosse um vetor de objeto, nesse caso ele teria de usar o método equals.

Vamos melhorar a pergunta:

Eu sei como somar e subtrair valores dentro de um mesmo vetor, mas como eu calculo o produto e a divisão dos valores de um mesmo vetor?

Exemplo: Como eu faço para multiplicar vet[0] por vet[1], dividir vet[1] por vet[0] e assim sucessivamente?

Bom, você pode colocar um índice no vetor.

for(int i = 2; i < vet.length; i++) { r = (vet[i] - vet[i-1]); }
É isso que você quer?

Matheus vc tá certo, ñ tinha prestado atenção, deculpe minha ignorância

Sem problema.
GilsnSilva, você resolveu seu problema?