java開發實戰第10章答案
阿新 • • 發佈:2018-12-17
按照要求定義一個操作類:要求完成一個一維陣列操作類,其中可以加入任意型別的資料,陣列具體的操作型別由程式外部決定,並且可以實現查詢功能
package chapter10; class Data<T>{ private T info; public Data(T info){ this.info=info; } public String toString(){ return this.info.toString(); } public T getInfo(){ return info; } } class Operation{ private Data[] datas; private int foot; public Operation(int len){ if(len>0){ this.datas=new Data[len]; }else{ this.datas=new Data[1]; } } public void add(Data data){ if(this.foot<this.datas.length){ this.datas[this.foot]=data; this.foot++; }else{ System.out.println("陣列已滿"); } } public void search(Object x){ int i=-1; boolean flag=false; for(Data data:this.datas){ i++; if(data.getInfo().getClass()==x.getClass()&&data.toString().equals(x.toString())){ if(flag==false){ System.out.print("存在"); flag=true; } System.out.print("\t"+"對應元素為:"); System.out.print("data["+i+"]"); } } if(flag==false){ System.out.println("不存在"); }else{ System.out.println(); } } public void print(){ int i=0; for(Data data:this.datas){ System.out.println("data["+(i++)+"]="+data.toString()); } } } public class Job1{ public static void main(String args[]){ Operation p=new Operation(4); p.add(new Data<Integer>(1)); p.add(new Data<Float>(1.2f)); p.add(new Data<String>("海賊王")); p.add(new Data<Double>(12.0)); p.print(); p.search(1); p.search(3.3f); p.search("索隆"); p.search("海賊王"); } }