import java.util.*;
public class Main {
public static void main(String[] args) {
int[] numbs = { 1, 2, 3 };
int[] numbs2 = new int[3];
String[] strs = new String[] { "a", "b", "c" };
System.out.println(strs.length); // 3
int[] arr = new int[3];
arr[0]=10;
System.out.println(arr.length); // 3
// Τ[] arrayname = new Τ[n];
int SIZE = 10;
int[] bathmoi = new int[SIZE];
for (int i = 0; i < SIZE; i++)
bathmoi[i] = i+10;
int bathmos = bathmoi[1]; // 2ο στοιχείο
System.out.println(bathmos); // 11
bathmoi[5] = 18;
int key = 20;
int index = Arrays.binarySearch(bathmoi, key);
System.out.println(index); // -11
Arrays.sort(bathmoi);
System.out.println(bathmoi.length); //10
int[] b=Arrays.copyOfRange(bathmoi, 0, SIZE);
System.out.println(b.length); // 10
// Τ[][] arrayname = new Τ[m][n];
//int m = 2, n = 3;
//int[][] matrix = new int[m][n];
int[][] numbers = { { 1, 2, 3 }, { 4, 5, 6 } };
System.out.println(Arrays.deepToString(numbers));
int[][] numbers2 = new int[2][3];
System.out.println(Arrays.deepToString(numbers2));
numbers2[0][1] = 6;
System.out.println(Arrays.deepToString(numbers2));
int[][] a = { {1}, {2, 3}, null }; // πίνακας με γραμμές διαφόρων μεγεθών (ragged table)
System.out.println(Arrays.deepToString(a));
System.out.println(a.length);
System.out.println(Arrays.toString(a[0]));
System.out.println(a[0].length);
String[] strings = new String[3];
Arrays.fill(strings, "a");
System.out.println(Arrays.toString(strings));
Arrays.fill(strings, 1, 2, "b");
System.out.println(Arrays.toString(strings));
String[] strings_ = new String[3];
Arrays.fill(strings_, "a");
System.out.println(Arrays.toString(strings_));
System.out.println(Arrays.mismatch(strings, strings_));
System.out.println(Arrays.compare(strings, strings_));
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = i;
}
for (int e : array) {
System.out.print(e + " ");
}
int[][] matrix = new int[5][5];
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = i+j;
}
}
for (int[] nums : matrix) {
for (int e : nums) {
System.out.print(e + " ");
}
System.out.println();
}
int [] array1 = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(array1));
int[][] array2d = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println(Arrays.deepToString(array2d));
int[] array2 = {2, 9, -1, 4, 13};
Arrays.sort(array2); // με αριθμητική σειρά
System.out.println(Arrays.toString(array2));
String[] names = {"Κώστας", "Γιάννης", "Κατερίνα", "Μαρία", "Ανάργυρος"};
Arrays.sort(names, 0, names.length, Collections.reverseOrder()); // λεξικογραφικά
System.out.println(Arrays.toString(names));
System.out.println(Arrays.binarySearch(array, 4)); // εύρεση του 4
int[] newArray = Arrays.copyOf(array, array.length+1);
System.out.println(Arrays.toString(newArray));
newArray = Arrays.copyOfRange(array, 1, 2);
System.out.println(Arrays.toString(newArray));
int[] clonedArray = array.clone();
System.out.println(Arrays.toString(clonedArray));
int[] array3 = new int[5];
System.arraycopy(array, 0, array3, 0, 5);
System.out.println(Arrays.toString(array2));
newArray = new int[array.length-1];
index = 1; // θέλουμε να διαγράψουμε το 2ο στοιχείο
System.arraycopy(array, 0, newArray, 0, index);
System.out.println(Arrays.toString(newArray));
System.arraycopy(array, index + 1, newArray, index, array.length - index - 1); // αντιγραφή από array[index+1] μέχρι array[array.length-1];
System.out.println(Arrays.toString(newArray));
int[][] newArray2d = Arrays.copyOf(array2d, array2d.length+1);
System.out.println(Arrays.equals(array, newArray));
System.out.println(Arrays.deepEquals(array2d, newArray2d)); // για n-διαστάσεις
int[][] aa = { { 1, 2, 3 }, { 4, 5, 6 } };
int[][] bb = { { 4, 5 }, { 7, 8 }, { 1, 2 } };
int[][] cc = new int[aa.length][bb[0].length];
for (int row=0; row < aa.length; row++) {
for (int col=0; col < bb[row].length; col++) {
for (int i = 0; i < bb.length; i++) {
cc[row][col] += aa[row][i] * bb[i][col];
}
}
}
for (int i=0; i < cc.length; i++) {
for (int j=0; j < cc[i].length; j++) {
System.out.print(" | " + cc[i][j]);
}
System.out.println(" |");
}
int[] d = {5, -7, 0, -1, 3, 12};
int[] p = new int[d.length]; // μπορεί όλα τα στοιχεία να 'ναι θετικοί ή μηδέν
int[] n = new int[d.length]; // μπορεί όλα τα στοιχεία να 'ναι αρνητικοί
int pi = 0, ni = 0;
for (int e : d) {
if (e >= 0) {
p[pi++] = e;
} else {
n[ni++] = e;
}
}
for (int i=0; i < pi; i++) {
System.out.print(" " + p[i]);
}
System.out.println();
for (int i=0; i < ni; i++) {
System.out.print(" " + n[i]);
}
}
}