我有一个自定义对象数组CustomClass [] customArr,其中CustomClass就像
Class CustomClass{
private String key;
private String value;
//getter & setters
}
Run Code Online (Sandbox Code Playgroud)
现在我想通过一个特定的值搜索这个数组.最好的方法是什么?
实施equals().确保您遵守方法的合同.
此外,如果您经常搜索并且数组很大,您可能需要为此考虑更好的数据结构,例如,Set如果您对数据结构中存在特定实例或其中一个实现感兴趣的实现之一Map如果你想用钥匙搜索.详情java.util请见.
请注意,某些数据结构java.util可能要求您提供自己的版本hashCode()(例如HashSet),有些可能要求您实现Comparable接口或提供Comparator(例如TreeSet).
如果您提供自己的版本,请hashCode()确保它与您的一致equals()(请参阅javadoc equals()).
如果你真的必须使用数组,那么请考虑其中一个版本Arrays.binarySearch().请注意,您只能在已排序的数组上使用它.