Created
November 4, 2020 16:34
-
-
Save suntong/43da049a4c23b824451235a293985503 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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