import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
class Main {
// private int array[];
// private int count;
// public Array(int length) {
// array = new int[length];
// }
// public void printArray() {
// for(int i = 0; i < count; i++) {
// System.out.print(array[i] + " ");
// }
// }
// public void insert(int element) {
// // creating a new array to double the size of array that is already declared
// if(array.length == count) {
// int newArray[] = new int[2 * count];
// // iterating over new array using a for loop
// for(int i = 0; i < count; i++) {
// newArray[i] = array[i];
// }
// // assignin gnew array to original array
// array = newArray;
// }
// array[count++] = element;
// }
// reverse a string
public static String reverse(String str) {
String string = "";
if(str.length() < 2) {
return "string cannot be reversed";
}
int count = str.length() - 1;
for(int i = 0; i < str.length(); i++) {
char a = str.charAt(count);
count--;
string = string + Character.toString(a);
}
return string;
// second solution
// int count = str.length - 1;
// int index = 0;
// String[] backwards = new String[str.length];
// for(int i = count; i >= 0; i--) {
// backwards[index] = (str[i]);
// index++;
// }
// return Arrays.toString(backwards);
}
// merge sorted arrays
public static int[] mergeSortedArrays(int[] arr1, int[] arr2) {
if(arr1.length == 0|| arr2.length == 0) {
return null;
}
int arrayOneCounter = 0;
int arrayTwoCounter = 0;
int[] mergedArrays = new int[arr1.length + arr2.length];
for(int i = 0; i < mergedArrays.length; i++) {
if(arrayOneCounter != arr1.length && (arrayTwoCounter == arr2.length
|| arr1[arrayOneCounter] < arr2[arrayTwoCounter])) {
mergedArrays[i] = arr1[arrayOneCounter];
arrayOneCounter++;
}
else {
mergedArrays[i] = arr2[arrayTwoCounter];
arrayTwoCounter++;
}
}
return mergedArrays;
}
public static void main(String[] args) {
// System.out.println("Hello World!");
// Arrays
// String[] strings = new String[5];
// for(int i = 0; i < strings.length; i++) {
// System.out.println(strings[i]);
// }
// or
// strings[0] = "a";
// strings[1] = "b";
// strings[2] = "c";
// strings[3] = "d";
// System.out.println(Arrays.toString(strings));
// strings[4] = "e";
// System.out.println(Arrays.toString(strings));
//ArrayList
// ArrayList<String> arrayList = new ArrayList<String>(5);
// arrayList.add("a");
// arrayList.add("b");
// arrayList.add("c");
// arrayList.add("d");
// arrayList.add("e");
// System.out.println(arrayList);
// arrayList.remove("e");
// System.out.println(arrayList);
// arrayList.add(0, "e");
// System.out.println(arrayList);
// Collections.sort(arrayList);
// for(int i = 0; i < arrayList.size(); i++) {
// System.out.println(arrayList.get(i));
// }
// reverse a string
// String string[] = new String[3];
// string[0] = "a";
// string[1] = "b";
// string[2] = "c";
// String string = "Hi my name is Kevin";
// System.out.print(reverse(string));
int[] arr1 = {0, 3, 4, 31};
int[] arr2 = {4, 6, 30};
int[] arr = (mergeSortedArrays(arr1, arr2));
Arrays.stream(arr).forEach(System.out::println);
}
}