英文名:Introduction to Java Programming and Data Structures, Comprehensive Version, 11th Edition
19.1
publicclassbook{publicstaticvoidmain(String[] args){
GenericStack<Integer> testStack =newGenericStack<Integer>();for(int i=0;i<10;i++){
testStack.push(i);}for(int i=0;i<10;i++){
System.out.println(testStack.pop());}}}classGenericStack<T>{private T[] list =(T[])newObject[4];privateint capacity =4;privateint size =0;publicintgetSize(){returnthis.size;}public T peek(){return list[size-1];}publicvoidpush(T obj){if(size == capacity){//expand
capacity *=2;
T[] newList =(T[])newObject[capacity];
System.arraycopy(list,0, newList,0, list.length);
list = newList;}
list[size]= obj;
size++;}public T pop(){
T ret = list[size-1];
size--;return ret;}publicbooleanisEmpty(){return size ==0;}}
19.2
publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
GenericStack<String> testStack =newGenericStack<String>();
System.out.println("Please enter 5 strings:");for(int i=0;i<5;i++){
String tmp = input.nextLine();
testStack.push(tmp);}
System.out.println("Throwing out:");for(int i=0;i<5;i++){
System.out.println(testStack.pop());}}}classGenericStack<T>extendsArrayList<T>{public T peek(){returnthis.get(this.size()-1);}publicvoidpush(T obj){this.add(obj);}public T pop(){
T ret =this.get(this.size()-1);this.remove(this.size()-1);return ret;}}
19.3
publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
ArrayList<Integer> test =newArrayList<>();
test.add(114);
test.add(514);
test.add(19);
test.add(19);
test.add(810);
ArrayList<Integer> result =removeDuplicates(test);for(int i=0;i<result.size();i++){
System.out.println(result.get(i));}}publicstatic<T> ArrayList<T>removeDuplicates(ArrayList<T> list){returnnewArrayList<T>(newHashSet<T>(list));}}
19.4
publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
Integer[] test =newInteger[10];for(int i=0;i<10;i++){
test[i]= i;}
System.out.println(linearSearch(test,5));}publicstatic<T extendsComparable<T>>intlinearSearch(T[] list, T key){int ret =-1;for(int i=0;i<list.length;i++){if(key.compareTo(list[i])==0){
ret = i;break;}}return ret;}}
19.5
publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
Integer[] test =newInteger[10];for(int i=0;i<10;i++){
test[i]= i;}
System.out.println(max(test));}publicstatic<T extendsComparable<T>> T max(T[] list){
T ret = list[0];for(int i=0;i<list.length;i++){if(ret.compareTo(list[i])<0){
ret = list[i];}}return ret;}}
19.6
publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
Integer[][] test ={{1,1,4,5,1,4},{1,9,1,9,8,1}};
System.out.println(max(test));}publicstatic<T extendsComparable<T>> T max(T[][] list){
T ret = list[0][0];for(T[] ts : list){for(int j =0; j < list[0].length; j++){if(ret.compareTo(ts[j])<0){
ret = ts[j];}}}return ret;}}