按照要求定义一个操作类:要求完成一个一维数组操作类,其中可以加入任意类型的数据,数组具体的操作类型由程序外部决定,并且可以实现查询功能。
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){
boolean flag=false;
for(int i=0;i<this.datas.length;i++){
if(datas[i].getInfo().getClass()==x.getClass()&&datas[i].toString().equals(x.toString())){
flag=true;
System.out.print(x+"存在, ");
System.out.print(" "+"对应元素为:");
System.out.print("data["+i+"]"+"\n");
break;
}
else {
flag=false;
}
}
if(flag==false) {
System.out.println(x+"不存在");
}
}
public void print(){
int i=0;
for(i=0;i<this.datas.length;i++){
System.out.println("data["+i+"]="+datas[i].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("海贼王");
p.search(12.0);
}
}