pojo类:
public class User {
private String _name = null;
private int _card = 0;
public String get_name() {
return _name;
}
public void set_name(String _name) {
this._name = _name;
}
public int get_card() {
return _card;
}
public void set_card(int _card) {
this._card = _card;
}
public int hashCode() {
return _card;
}
public boolean equals(Object o){
if(this==o){
return true;
}
if(o==null){
return false;
}
if((o instanceof User) && (_card==((User)o).get_card())){
return true;
}
return false;
}
}
Executor类:
import java.util.HashMap;
import java.util.List;
import org.m.pojo.User;
public class Executor {
private List<User> _scann = null;
private List<User> _comparator = null;
private Object[] x = null;
private Object[] y = null;
HashMap<Integer, User> map = new HashMap<Integer, User>();
public Executor(List<User> scann, List<User> comparator) {
this._scann = scann;
this._comparator = comparator;
}
public void to() {
x = _scann.toArray();
y = _comparator.toArray();
for (int i = 0; i < y.length; i++) {
map.put(i, (User)y[i]);
}
}
public Object[] getScann() {
return x;
}
public HashMap<Integer, User> getMap() {
return map;
}
}
Text类:
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.m.pojo.User;
import org.m.util.Executor;
public class Text {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("ss");
Random r=new Random();
List<User> userA=new ArrayList<User>();
List<User> userB=new ArrayList<User>();
for(int i=0;i<=1000000;i++){
User u=new User();
u.set_card(r.nextInt(1000));
userA.add(u);
}
for(int i=0;i<500;i++){
User u=new User();
u.set_card(r.nextInt(1000));
userB.add(u);
}
int sum=0;
Executor ex=new Executor(userA,userB);
ex.to();
Object[] u=ex.getScann();
Integer begin=Integer.valueOf(sdf.format(System.currentTimeMillis()));
for(int i=0;i<u.length;i++){
if(ex.getMap().containsValue((User)u[i])){
sum++;
}
}
System.out.println("共有:"+sum);
Integer end=Integer.valueOf(sdf.format(System.currentTimeMillis()));
System.out.println("找到用时:"+(end-begin)+"秒");
}
}
结果:
共有:397288
找到用时:7秒