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 original- public 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); 
-     } 
- }