import java.util.Arrays;
import java.util.Comparator;
/**
* {@link <a href=
* "https://[Log in to view URL]"
* target="_blank">Manipolazione di un array</a>}
*
* @author itammb ( Italia Massimiliano Buscati )
* @version JDK 1.15
*
*/
class Main {
private static final class User {
private final int id;
private final String alias;
public String getAlias() {
return alias;
}
public int getId() {
return id;
}
@Override
public String toString() {
return "User [id=" + id + ", alias=" + alias + "]";
}
protected User(int id, String alias) {
this.id = id;
this.alias = alias;
}
}
/**
* @see Comparator
*
*/
private static class ComparatorImp implements Comparator<Integer> {
public int compare(Integer a, Integer b) {
// return Integer.compare(a, b);
return a == b ? 0 : (a < b) ? -1 : 1;
}
}
public static void toInitializeAndAccessPrimitiveArray() {
// dichiarazione di un array di interi
int[] array;
// allocazione di 5 elementi, interi e contigui, in memoria
array = new int[5];
// inizializzazione del primo elemento di un int[]
array[0] = 10;
// così via...
array[1] = 20;
array[2] = 30;
array[3] = 40;
array[4] = 50;
// accesso alla struttura int[]
for (int i = 0; i < array.length; i++)
System.out.println(i + " -> " + array[i]);
for (int elemento : array)
System.out.println(elemento);
}
public static void toInitializeAndAccessNoPrimitiveArray() {
User[] userRegister = new User[5];
// assegnazione di un'istanza della classe User a una locazone del User[]
userRegister[0] = new User(1, "Massimiliano");
userRegister[1] = new User(2, "Italo");
userRegister[2] = new User(3, "Fabio");
userRegister[3] = new User(4, "Roberto");
userRegister[4] = new User(5, "Simone");
// accesso alla struttura User[]
// accesso - da evitare
// for (User user : userRegister)
// System.out.println( user.id + " -- " + user.alias);
// accesso - consigliato
for (User user : userRegister)
System.out.println(user.getId() + " -- " + user.getAlias());
}
public static void toInitializeAndAccessNoPrimitiveArray2D() {
int matrix[][] = { { 2, 7, 9 }, { 3, 6, 1 }, { 7, 4, 2 } };
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < 3; j++)
System.out.print(matrix[i][j] + " ");
System.out.println();
}
}
/**
* @see Arrays#copyOf(int[], int)
* @see Arrays#sort(int[])
* @see Arrays#compare(int[], int[])
*
* {@link Arrays#stream(int[])} {@link java.util.stream.IntStream#boxed()}
* {@link java.util.stream.Stream#toArray(java.util.function.IntFunction)}
*
*/
public static void applayArraysLibrary() {
// copia di un int[]
int[] array = new int[] { 3, 1, 2, 5, 4 };
int[] arryCopy = Arrays.copyOf(array, array.length);
for (int i : arryCopy)
System.out.print(i + " ");
if (array != arryCopy)
System.out.println("\r\narray != arryCopy (indirizzo in memoria)");
// ricerca di un int[]
// prima di una ricerca binaria è necessario ordinare la struttura dati
Arrays.sort(array);
System.out.println("la posizione del numero 3 nel int[] (ordinato) è: " + Arrays.binarySearch(array, 3));
// compara due int[]
System.out.println(Arrays.compare(array, arryCopy));
// converte int[] verso Integer[]
Integer[] wrapperArray = Arrays.stream(array).boxed().toArray(Integer[]::new);
Integer[] wrapperArray_ = Arrays.stream(array).boxed().toArray(Integer[]::new);
// compara due Integer[] tramite un interfaccia Comparator<Integer>
System.out.println(Arrays.compare(wrapperArray, wrapperArray_, new ComparatorImp()));
if (wrapperArray != wrapperArray_)
System.out.println("\r\nwrapperArray != wrapperArray_ (indirizzo in memoria)");
}
public static void main(String args[]) throws Exception {
// Unit test - inizializzazione e accesso a un array di elementi di tipo
// primitivo
toInitializeAndAccessPrimitiveArray();
System.out.println();
// Unit test - inizializzazione e accesso a un array di elementi di tipo
// strutturato
toInitializeAndAccessNoPrimitiveArray();
System.out.println();
// Unit test - inizializzazione e accesso a un array 2D di elementi di tipo
// primitivo
toInitializeAndAccessNoPrimitiveArray2D();
System.out.println();
// Unit test - libreria Arrays
applayArraysLibrary();
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: