黑马程序员技术交流社区
标题:
泛型数组问题
[打印本页]
作者:
lwy0319
时间:
2014-3-23 07:58
标题:
泛型数组问题
我想写一个泛型数组兼容一些类型的查询功能
class Mun<T>{
public <T> T[]fun1(T...arg){//数组接收任何类型的参数
return arg;
}
public <T> void fun2(T args[]){//遍历输出此数组
for(int i=0;i<args.length;i++){
System.out.print(args[i]+" ");
}
}
public void fun3(T o,T args[]){
int a=0;
for(int i=0;i<args.length;i++){
if(args[i]==o){
a++;
System.out.println(o+"在数组中的位置是从左数的第"+(i+1)+"位");
}
}
if(a==0){
System.out.println("此数组中不包含元素"+o);
}
}
}
public class Text7 {
public static void main(String[] args){
Mun<Integer> t=new Mun<Integer>();
Integer i[]=t.fun1(1,2,3,4);
t.fun3(3, i);
Mun<Double> t2=new Mun<Double>();
Double i1[]=t2.fun1(1.0,2.0,3.0,4.0);
t2.fun3(4.0,i1);
}
}
复制代码
结果发现Double类的数组总是查询出错,能帮我修改下么?
作者:
hyace
时间:
2014-3-23 09:35
本帖最后由 hyace 于 2014-3-23 09:39 编辑
浮点数不能直接用等号比较的,两个数你看着一样小数点后多少位的精度你就搞不清了。你可以这样写:
if(args[i].equals(o)){
a++;
System.out.println(o+"在数组中的位置是从左数的第"+(i+1)+"位");
}
复制代码
作者:
lwy0319
时间:
2014-3-23 13:57
hyace 发表于 2014-3-23 09:35
浮点数不能直接用等号比较的,两个数你看着一样小数点后多少位的精度你就搞不清了。你可以这样写:
...
原来如此,谢谢你,这下差不多了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2