import java.util.ArrayList;
import java.util.List;
/**
*
* @author billy.johnson
*/
public class Vectores {
/**
* Convierte un List<Integer> a int []
*
* @param list
* @return
*/
private int[] listToArray(List<Integer> list) { int[] array = new int[list.size()];
for (int i = 0; i < array.length; i++) { array[i] = list.get(i);
}
return array;
}
/**
* Devuelve un array con los números primos que se encuentran el array dado
*
* @param vector
* @return
*/
public int[] primos(int[] vector) { List<Integer> list_primos = new ArrayList();
for (int e : vector) { boolean isPrimo = true;
for (int i = 2; i < e; i++) { if (e % i == 0) { isPrimo = false;
break;
}
}
if (isPrimo) { if (e > 1) { list_primos.add(e);
}
}
}
return listToArray(list_primos);
}
/**
* Mezcla dos arrays y devuelve 1 ordenado. El método de ordenamiento que se
* utiliza es el ordenamiento por burbuja
*
* @param a
* @param b
* @return
*/
public int[] mezclar(int[] a, int[] b) { List<Integer> l = new ArrayList();
for (int e : a) { l.add(e);
}
for (int e : b) { l.add(e);
}
int[] m = listToArray(l);
for (int i = m.length - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (m[j] > m[j + 1]) { int aux = m[j];
m[j] = m[j + 1];
m[j + 1] = aux;
}
}
}
return m;
}
/**
* Imprime el elemento mas repetido del array y su cantidad de repeticiones
*
* @param array
*/
public void elementoMasRepetido(int[] array) { int elemento = 0;
int repetido = 0;
for (int i = 0; i < array.length; i++) { int r = 0;
for (int j = i; j < array.length; j++) { if (array[i] == array[j]) { r++;
}
}
if (r > repetido) { elemento = i;
repetido = r;
}
}
System.out.println("El elemento mas repetido del arreglo es " + array[elemento] + " en la posicion " + elemento + " con " + repetido + " repeticiones"); }
/**
* Devuelve el digito mayor del número dado
*
* @param numero
* @return
*/
public int mayorDigito(Integer numero) { String n = numero.toString();
int[] digitos = new int[n.length()];
int mayor = Integer.parseInt(String.valueOf(n.charAt(0)));
for (int i = 0; i < digitos.length; i++) { if (Integer.parseInt(String.valueOf(n.charAt(i))) > mayor) { mayor = Integer.parseInt(String.valueOf(n.charAt(i)));
}
}
return mayor;
}
/**
* Devuelve cuantas veces se repite el parametro digito en el parametro
* digitos
*
* @param digitos
* @param digito
* @return
*/
public int repeticiones(Integer digitos, Integer digito) { int contador = 0;
for (char c : digitos.toString().toCharArray()) { if (digito.toString().equals(String.valueOf(c))) { contador++;
}
}
return contador;
}
/**
* Multiplica los elementos del array por el valor del parametro x
*
* @param array
* @param x
* @return
*/
public int[] multiplicarElementos(int[] array, int x) { int[] aux = new int[array.length];
for (int i = 0; i < array.length; i++) { aux[i] = array[i] * x;
}
return aux;
}
/**
* Muestra el contenido de un array
*
* @param array
*/
public static void showArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.println(i + "\t->\t" + array[i]);
}
}
public static void main(String[] args) { Vectores v = new Vectores();
int[] a = {6, 8, 3, 7}; int[] b = {9, 4, 2, 5}; int[] m = v.mezclar(a, b);
System.out.println("array a: "); showArray(a);
System.out.println("\narray b: "); showArray(b);
System.out.println("\narray mezclado y ordenado: "); showArray(m);
int[] c = {1, 5, 5, 8, 6, 7, 9, 3, 1, 5, 6, 7, 5, 7, 7, 8}; v.elementoMasRepetido(c);
int[] array_0_a_99 = new int[100];
for (int i = 0; i < array_0_a_99.length; i++) { array_0_a_99[i] = i;
}
System.out.println("\nNumeros primos entre el 0 y 99: "); showArray(v.primos(array_0_a_99));
int numero = 456865887;
int mayorDigito = v.mayorDigito(numero);
System.out.println("El mayor digito de " + numero + " es:" + mayorDigito); System.out.println("Y se repite " + v.repeticiones(numero, mayorDigito) + " veces"); int multiplicador = 2;
int[] multiplicar = {1, 2, 3, 4, 5}; int[] multiplicado = v.multiplicarElementos(multiplicar, multiplicador);
System.out.println("Dado el vector"); showArray(multiplicar);
System.out.println("\nSerá multiplicado por " + multiplicador + " queda así:"); showArray(multiplicado);
}
}