两个数组找相同元素
现有 数组A 与 数组B
两个数组中都放的是对象O, 对象O有id 与 name 两个属性,判断两个O是否为同一个对象,根据属性name来判断。
要求:通过
高效的算法,找出A、B中相同的对象,并输出相互对应的id , 如:
1 - 4
2 - 3
5 - 6
------解决方案--------------------import
java.io.IOException;
public class Test1 {
/**
* @param args
* @throws
IOException
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1=new Person();
p1.setName("zhangsan");
Person p2=new Person();
p2.setName("zhangsan");
Person[] o1={p1};
Person[] o2={p2};
for(int i=0;i<o1.length;i++){
for(int j=0;j<o2.length;j++){
if(o1[i].getName().equals(o2[j].getName())){
System.out.println("相等的对象在两个数组中分别的下标为:"+i+":"+j);
}
}
}
}
}
------解决方案--------------------重写equal和hashcode方法,使用Array.sort();就可以啦
------解决方案--------------------重写equal和hashcode方法,使用Array.sort();就可以啦
------解决方案--------------------最高效的方法应该是对一个数组中的元素建立哈希表,然后遍历另一个数组的元素吧
------解决方案--------------------
要看数据的规模了。。。