comparator java对象列表比较
我正在吃List<Student> stud1 = new ArrayList<Student>();
和List<Student> stud2 = new ArrayList<Student>();
而且Student
类的成员有name,address
我要做的是,我必须列出stud1中的学生(如果stud1的学生名等于stud2的学生名)
如何做到这一点
我想知道,是否有任何现有的java库像ListUtil可以解决这个问题
你可以在下面搜索框中键入要查询的问题!
我正在吃List<Student> stud1 = new ArrayList<Student>();
和List<Student> stud2 = new ArrayList<Student>();
而且Student
类的成员有name,address
我要做的是,我必须列出stud1中的学生(如果stud1的学生名等于stud2的学生名)
如何做到这一点
我想知道,是否有任何现有的java库像ListUtil可以解决这个问题
# 1 楼答案
可以使用HashSet进行查找名称匹配:
# 2 楼答案
这个例子可能对你有所帮助
}
# 3 楼答案
你可以做:
HashSet<String>
包含stud2
中Student
的所有名称stud1
中的每个Student
,检查他的名字是否在集合中,如果在集合中,则将其添加到列表中以返回李># 4 楼答案
有很多方法可以比较集合中的元素,如果你只需要比较学生的名字,你可以迭代并比较两个列表中的名字,但是我认为在学生类中实现Comparable并创建compare_to方法更优雅
更多信息请点击此处:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Comparable.html
# 5 楼答案
以下是一些算法:
# 6 楼答案
只需迭代它们,检查并不断添加一个结果列表 如果你想优化它
创建地图
然后选择
HashMap
实现,只查找那些名字匹配的学生比如说
所以现在你不会搜索完整的列表,缩小搜索范围