线性查找数组中数所在的索引,数组内数据为24, 18, 12, 9, 16, 66, 32, 4
不使用泛型
publicclassLinearSearch {
publicstaticintsearch(int[] data, inttarget) {
for (inti=0; i<data.length; i++) {
if (data[i] ==target) {
returni;
}
}
return-1;
}
publicstaticvoidmain(String[] args) {
int[] data= {24, 18, 12, 9, 16, 66, 32, 4};
intres=LinearSearch.search(data, 16);
System.out.println(res);
}
}
使用泛型
publicclassLinearSearchFanXing {
privateLinearSearchFanXing() {
}
publicstatic<E>intsearch(E[] data, Etarget) {
for (inti=0; i<data.length; i++) {
if (data[i].equals(target)) {
returni;
}
}
return-1;
}
publicstaticvoidmain(String[] args) {
Integer[] data= {24, 18, 12, 9, 16, 66, 32, 4};
intres=LinearSearchFanXing.search(data, 16);
System.out.println(res);
}
}
这里涉及到==和equals的区别用法
“==”是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值。
equals是Object的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值。