java开发实战第10章答案

按照要求定义一个操作类:要求完成一个一维数组操作类,其中可以加入任意类型的数据,数组具体的操作类型由程序外部决定,并且可以实现查询功能

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("海贼王");
		
	}
}
发布了33 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lz970704/article/details/83445636