按照要求定义一个操作类:要求完成一个一维数组操作类,其中可以加入任意类型的数据,数组具体的操作类型由程序外部决定,并且可以实现查询功能
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("海贼王");
}
}