Tendré que enviar mi respuesta en dos mensajes, porque el foro no me permite hacerlo en un solo mensaje.
Método Integer.bitCount(int)
Devuelve un número entero que indica la cantidad de (bits) unos, que aparecen en la representación binaria (
complemento a dos), del número entero que se le pasa como argumento.
Ejemplo:
El número
100 convertido a su equivalente binario es
1100100. El método contará la cantidad de unos y nos devolverá ese valor, en este caso la salida será
3.
Método Integer.compare(int, int)
Compara dos valores literales enteros y devuelve un valor entero.
* Si los números son iguales devuelve 0.
* Si el primer argumento es menor que el segundo, devuelve un entero menor que 0.
* Si el primer argumento es mayor que el segundo, devuelve un entero mayor que 0.
Ejemplo:
Método Integer.compareTo(Integer)
objeto_1.compareTo(objeto_2)
Compara
numéricamente dos instancias (objetos), de la clase Integer y devuelve un valor entero.
* Si los objetos son iguales devuelve 0.
* Si el primer objeto es menor que el segundo, devuelve un entero menor que 0.
* Si el primer objeto es mayor que el segundo, devuelve un entero mayor que 0.
Ejemplo:
Las líneas 4 y 5 utilizan un literal entero como argumento. Debido a la sobrecarga del constructor de la clase Integer, también se le puede pasar como argumento un String (que cumpla con el formato de un número entero), como se ve en la línea 6.
En el ejemplo, utilicé la palabra reservada
new para que se vea claramente que se están
creando objetos de tipo Integer, aunque en muchos casos es mejor utilizar el método
valueOf(int), debido a la mejora en el uso del espacio en memoria y en el rendimiento en general, como está especificado en la
documentación de java.
Tomando en cuenta lo anterior, podrían reemplazarse las líneas 4, 5 y 6, por estas otras:
Utilizando este método se puede hacer exactamente lo mismo que hace el método
compare(int, int), de esta manera:
Integer.compare(objeto_1, objeto_2);
Integer.valueOf(objeto_1).compareTo(Integer.valueOf(objeto_2))
Ambas sentencias devuelven el mismo resultado.
Ejemplo:
Método Integer.decode(String)
Decodifica un argumento de tipo String (que tenga un formato numérico adecuado) y devuelve un objeto de clase Integer. Acepta cadenas que representan números decimales, octales y hexadecimales.
* La cadena debe representar un valor positivo.
* La cadena no puede contener espacios.
* No se pueden usar guiones bajos como separadores de los dígitos.
Ejemplo: