class Router
{
private String ip;
public boolean equals(Router r)
{
return ip.equals(r.ip);
}
public Router(String ip)
{
this.ip=ip;
}
public static void main(String[] args)
{
ArrayList<Router> rlist=new ArrayList<Router>();
Router r1=new Router("192.168.0.1");
rlist.add(r1);
Router r2=new Router("192.168.0.1");
System.out.println(rlist.indexOf(r2));//此处返回值为-1
}
}
//正确的定义equals应为
public boolean equals(Object obj)
{
return this.ip.equals(((Router)obj).ip);
}
实现了 只要对象的 ip值相等即可