Skip to content

Instantly share code, notes, and snippets.

@suntong
Created November 4, 2020 16:34
Show Gist options
  • Save suntong/43da049a4c23b824451235a293985503 to your computer and use it in GitHub Desktop.
Save suntong/43da049a4c23b824451235a293985503 to your computer and use it in GitHub Desktop.
// https://www.tutorialspoint.com/java/java_generics.htm
public class MyClass {
// == generic method printArray
public static < E > void printArray( E[] inputArray ) {
// Display array elements
for(E element : inputArray) {
System.out.printf("%s ", element);
}
System.out.println();
}
public static void test1() {
// Create arrays of Integer, Double and Character
Integer[] intArray = { 1, 2, 3, 4, 5 };
Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };
System.out.println("Array integerArray contains:");
printArray(intArray); // pass an Integer array
System.out.println("\nArray doubleArray contains:");
printArray(doubleArray); // pass a Double array
System.out.println("\nArray characterArray contains:");
printArray(charArray); // pass a Character array
// Array integerArray contains:
// 1 2 3 4 5
// Array doubleArray contains:
// 1.1 2.2 3.3 4.4
// Array characterArray contains:
// H E L L O
}
// == determines the largest of three Comparable objects
public static <T extends Comparable<T>> T maximum(T x, T y, T z) {
T max = x; // assume x is initially the largest
if(y.compareTo(max) > 0) {
max = y; // y is the largest so far
}
if(z.compareTo(max) > 0) {
max = z; // z is the largest now
}
return max; // returns the largest object
}
public static void test2() {
System.out.printf("\n== Largest of three Tests\n");
System.out.printf("Max of %d, %d and %d is %d\n\n",
3, 4, 5, maximum( 3, 4, 5 ));
System.out.printf("Max of %.1f,%.1f and %.1f is %.1f\n\n",
6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ));
System.out.printf("Max of %s, %s and %s is %s\n","pear",
"apple", "orange", maximum("pear", "apple", "orange"));
// Max of 3, 4 and 5 is 5
// Max of 6.6,8.8 and 7.7 is 8.8
// Max of pear, apple and orange is pear
}
// == Generic Classes
public static class Box<T> {
private T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
}
public static void test3() {
System.out.printf("\n== Generic Class Tests\n");
Box<Integer> integerBox = new Box<Integer>();
Box<String> stringBox = new Box<String>();
integerBox.add(new Integer(10));
stringBox.add(new String("Hello World"));
System.out.printf("Integer Value :%d\n", integerBox.get());
System.out.printf("String Value :%s\n", stringBox.get());
// Integer Value :10
// String Value :Hello World
}
public static void main(String args[]) {
test1();
test2();
test3();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment