Checkate un tuto de listas. De momento, te explico algo.
Una lista es un objeto que permite almacenar todo tipo de objetos. La manera de indicar qué tipo de valores es mediante Generics, que no es más que la firma que se le pone a una lista y que dice qué tipo de objetos almacenará. Por ejemplo:
List<Integer> numbers = new ArrayList<>();
Al hacer ésto indicas que la lista 
numbers solo aceptará números enteros. Si intentas ingresar un double o un String, no te dejará siquiera compilar, de ésta manera protegemos nuestra aplicación de errores en tiempos de ejecución.
Para agregar un valor, lo hacemos a través del método 
add:
numbers.add(10);
Para obtener un valor, lo hacemos a través de la posición, como en los arrays:
Puedes ordenar también una lista, con el método 
sort de la clase 
Collections:
Ordenará la lista en forma ascendete.Puedes también ordenar una lista de forma que tú desees, utilizando el objeto 
Comparator:
	@Override
		return (v2.intValue() > v1.intValue()) ? 1 : -1;
	}
});
El método anterior ordena una lista de forma descendente.
Tienes muchos métodos a disposición, puedes consultar la lista completa 
aquíSaludos.