在Java中比较列表映射中每个对象的性能
我有一个Java程序,其映射类型为<String, Project>
,其中包含所有项目对象,项目的每个对象都包含一个相关流程对象列表,即List<Process>
public class Project {
private String name;
private Path path;
private List<Process> processes;
\\ getters and setters follow
及
public class Process {
private String name;
private String path;
private String flow;
\\getters and setters follow
我正在编写一个函数来查找每个Process
(跨所有项目)的flow
之间的字符串距离(使用JaroWinklerDistance
)。我得出了以下结论:
public void compareAllProcesses(Map<String, Project> projects) {
Iterator<Project> projIter1 = projects.values().iterator();
while(projIter1.hasNext()) {
Project proj1 = projIter1.next();
Iterator<Process> procIter1 = proj1.getProcesses().iterator();
while(procIter1.hasNext()) {
Process proc1 = procIter1.next();
Iterator<Project> projIter2 = projects.values().iterator();
while(projIter2.hasNext()) {
Project proj2 = projIter2.next();
Iterator<Process> procIter2 = proj2.getProcesses().iterator();
while(procIter2.hasNext()) {
Process proc2 = procIter2.next();
//use JaroWinklerDistance to compare proc1.getFlow() with proc2.getFLow()
}
}
}
}
}
有没有一种更有效、更优雅的方法来实现这一点
# 1 楼答案
可能与
Stream
有关:# 2 楼答案
# 3 楼答案
也许加一点糖: