读书人

两个数组觅相同元素

发布时间: 2013-02-24 17:58:56 作者: rapoo

两个数组找相同元素
现有 数组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();就可以啦
[解决办法]
最高效的方法应该是对一个数组中的元素建立哈希表,然后遍历另一个数组的元素吧
[解决办法]

引用:
最高效的方法应该是对一个数组中的元素建立哈希表,然后遍历另一个数组的元素吧

要看数据的规模了。。。

读书人网 >J2EE开发

热点推荐