10-0 按照要求定义一个操作类:要求完成一个一维数组操作类,其中可以加入任意类型的数据,数组的具体操作类型由程序外部决定,并且可以实现查询功能.。
package book;
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("\tdata[" + 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() + "\t数据所属类:"
+ data.getInfo().getClass().toString().split(" ")[1]);
}
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String toString() {
return name;
}
}// 写个自己定义的Peron类
public class JiOu {
public static void main(String args[]) {
Operation op = new Operation(6);
op.add(new Data<Integer>(10));
op.add(new Data<Float>(12.0f));
op.add(new Data<String>("13"));
op.add(new Data<Integer>(10));
op.add(new Data<Double>(12.0));
op.add(new Data<Person>(new Person("张三")));
op.print();
op.search(10); // 查询Internet类
op.search(12.0);// 查询Double类
op.search(12.0f);// 查询Float类
op.search("13");// 查询String类
Person a = new Person("李四");
op.search(a);// 查询Person类
}
}
运行结果:
data[0]=10 数据所属类:java.lang.Integer
data[1]=12.0 数据所属类:java.lang.Float
data[2]=13 数据所属类:java.lang.String
data[3]=10 数据所属类:java.lang.Integer
data[4]=12.0 数据所属类:java.lang.Double
data[5]=张三 数据所属类:book.Person
存在 data[0] data[3]
存在 data[4]
存在 data[1]
存在 data[2]
不存在
原文地址:https://blog.csdn.net/weixin_38289567/article/details/71305452