Map 对象很适合使用键而不是位置值来获取您要查找的内容。
映射对象将信息存储在键/值对中。在您的示例中,键是组,值是联系人列表。为了让这一切正常工作,您的关键对象必须实现 equals(Object object) 方法。
public class Group {
//lots of really great code that defines a Group
public boolean equals(Object obj) {
if( Object == null ) return false;
if( !(Object instanceof Group) ) return false;
if( this == obj ) return true;
Group compareMe = (Group)obj;
if( this.getId() != null && compareMe.getId() != null && this.getId().equals(compareMe.getId()) ) return true;
return false;
}
}
然后可以使用 map.get(Group key) 来获取您要查找的内容。
真正的问题是地图不是排序的集合。信息的存储方式没有保证的顺序,因此您不能真正保证每次根据位置值 1 获取的东西都是相同的。