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("海贼王");
		
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值