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");
}
/**
* 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));
}
}