/* La classe ArrayUtil fornisce alcuni semplici strumenti per la gestione e modifica di array. Enrico Mensa. */
import java.util.*;
public class ArrayUtil{
public static int [] newArray(){ //permette l'inserimento di valori in un array di int
int [] nuovoarray;
Scanner input=new Scanner (System.in);
System.out.println("Inserisci la dimensione dell'Array.");
int n=input.nextInt();
nuovoarray=new int[n];
for (int i=0;i<nuovoarray.length;i++){
System.out.println("Inserisci l'elemento ["+i+"] dell'array");
nuovoarray[i]=input.nextInt();
}
return nuovoarray;
}
public static double [] newDoubleArray(){ //permette l'inserimento di valori in un array di int
double [] nuovoarray;
Scanner input=new Scanner (System.in);
System.out.println("Inserisci la dimensione dell'Array (Double).");
int n=input.nextInt();
nuovoarray=new double[n];
for (int i=0;i<nuovoarray.length;i++){
System.out.println("Inserisci l'elemento ["+i+"] dell'array");
nuovoarray[i]=input.nextInt();
}
return nuovoarray; // restituisce il riferimento all'array di int
}
public static void printArray(int [] a){ //genera la stampa dei valori di un array di int
for (int j=0;j<a.length;j++) //stampa l'array
System.out.println("Elemento ["+j+"] dell'array: "+a[j]+".");
}
public static void printDoubleArray(double [] a){ //genera la stampa di valori di un array di double
for (int j=0;j<a.length;j++)
System.out.println("Elemento ["+j+"] dell'array: "+a[j]+".");
}
public static int sumArrayValues (int[] a){ //effettua la somma di tutti gli elementi di un array di int
int somma=0;
for (int j=0;j<a.length;j++)
somma=somma+a[j];
return somma;
}
public static int[] copyArray (int[] a){ //copia valore per valore da un array di int ad un altro
int[] b= new int[a.length];
for (int j=0;j<b.length;j++)
b[j]=a[j];
return b;
}
public static boolean sameArray (int[] a, int[] b){ //controlla se due array di int sono identici e restituisce un boolean
if (a.length!=b.length)
return false;
else{
for (int j=0;j<a.length;j++){
if (a[j]!=b[j])
return false;
}
return true;
}
}
/*public static double[] expArray(double[] a, int n) { //effettua l'esponenziale di ogni numero contenuto in un array (con esponente int inserito dall'utente) e ne restituisce uno di double
for (int i=0;i<a.length;i++)
a[i]=Matematica.exp(a[i],n);
return a;
} */
public static int[] pariArray(int[] array){ //metodo che verifica la presenza o meno di elementi pari in un array e li salva in un array di dimensioni adatta, dopodiché lo restituisce al chiamante
int n=0;
int j=0;
for (int i=0;i<array.length;i++){
if (array[i]%2==0)
n++;
}
if(n==0){
System.out.println(" ");
System.out.println("ATTENZIONE: Non ci sono elementi pari: operazione non riuscita. Verrà generato un array vuoto.");
}
int[] solopari=new int[n];
for (int i=0;i<array.length;i++){
if (array[i]%2==0){
solopari[j]=array[i];
j++;
}
}
return solopari;
}
public static int[] concatArray(int[] a, int[] b){
int[] c=new int[a.length+b.length];
int k=0;
for (int i=0;i<c.length;i++){
if(i<a.length)
c[i]=a[i];
else{
c[i]=b[k];
k++;
}
}
return c;
}
public static int[] invertArray(int[] array){ //metodo che inverte di posizione gli elementi di un array
int j=array.length-1;
int[] arrayinverso=new int[array.length];
for (int i=0;i<array.length;i++){
arrayinverso[j]=array[i];
j--;
}
return arrayinverso;
}
public static boolean orderedArray(int[] array) { //metodo che verifica se un array è ordinato o meno, restituendo un boolean
int i=0;
int b=array[0];
while(i<array.length){
if(b>array[i])
return false;
b=array[i];
i++;
}
return true;
}
public static int[] interceptionArray(int[] a, int[] b){ //restituisce gli elementi in comune tra due array
int h=0;
int k=0;
for (int i=0;i<a.length;i++){
for (int j=0;j<b.length;j++){
if (a[i]==b[j]){
k++;
}
}
}
int[] c=new int[k];
for (int i=0;i<a.length;i++){
for (int j=0;j<b.length;j++){
if (a[i]==b[j]){
c[h]=a[i];
h++;
}
}
}
return c;
}
public static int[] differenceArray(int[] a, int[] b){
int h=0;
int k=0;
boolean diverso = true;
for (int i=0;i<a.length;i++){
for (int j=0;j<b.length;j++){
if (a[i]==b[j]){
diverso=false;
}
}
if (diverso){
k++;
}
diverso=true;
}
for (int i=0;i<b.length;i++){
for (int j=0;j<a.length;j++){
if (a[j]==b[i]){
diverso=false;
}
}
if (diverso){
k++;
}
diverso=true;
}
int[] c=new int[k];
for (int i=0;i<a.length;i++){
for (int j=0;j<b.length;j++){
if (a[i]==b[j]){
diverso=false;
}
}
if (diverso){
c[h]=a[i];
h++;
}
diverso=true;
}
for (int i=0;i<b.length;i++){
for (int j=0;j<a.length;j++){
if (a[j]==b[i]){
diverso=false;
}
}
if (diverso){
c[h]=b[i];
h++;
}
diverso=true;
}
return c;
}
}
Commenti
Posta un commento