Si quieres encontrar el número superior tendrás que ordenar el array o recorrer el array entero buscando el menor número que sea mayor que el que buscabas.
Código Java:
Ver originalpublic class PruebaNumeros {
public void encontrar(ArrayList<Integer> numeros) {
java.
util.
Scanner sc
= new java.
util.
Scanner(System.
in); int encontrar;
System.
out.
println("Introduce el numero a buscar:"); encontrar = sc.nextInt();
if (numeros.contains(encontrar)) {
System.
out.
println(encontrar
+ " la primera posicion es " + numeros.
indexOf(encontrar
)); }
else {
int posicion = -1, i =0;
System.
out.
println(encontrar
+ " No se encuentra el numero");
for(int numero : numeros){
if (numero > encontrar && numero < minimo){
minimo = numero;
posicion = i;
}
i++;
}
if (posicion != -1)
{
System.
out.
println(encontrar
+ " el siguiente numero superior " + minimo
+ " esta en la posicion " + posicion
); }
else System.
out.
println("No hay un numero superior a "+ encontrar
+" en el array"); }
}
public static void main
(String[] args
) {
PruebaNumeros n = new PruebaNumeros();
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Collections.
addAll(arrayList,
1,
3,
5,
7,
2,
8,
20,
30); n.encontrar(arrayList);
}
}