我有一个列表filteredList,并且我在每个元素上流式传输并使用每个元素来设置一些项目
filteredList.parallelStream().forEach(s->{
ARChaic option=new ARChaic();
option.setCpu(s.getNoOfCPU());
option.setMem(s.getMemory());
option.setStorage(s.getStorage());
option.setOperatingSystem(s.getOperationSystem());
ARChaic newOption= providerDes.getLatest(option); //this is a external service
s.setCloudMemory(newOption.getMem());
s.setCloudCPU(newOption.getCpu());
s.setCloudStorage(newOption.getStorage());
s.setCloudOS(newOption.getOperatingSystem());
});
目标是致电此服务,但如果以上选项相同,则请使用旧的服务。
例如-如果两个服务器具有相同的内存,CPU,操作系统和存储,则它将仅调用一次 getLatest 。
假设在filteredList的位置1和7处,我具有相同的配置,那么我不应该在7处再次调用getLatest,因为我已经有了先前的选项值,我将其设置为7(在服务调用后完成工作)
答案 0 :(得分:0)
您可以将<div class="modal datepicker-modal" id="modal-a5a43c91-2426-5565-c216-1d8ccd0cfc1d" tabindex="0">
<div class="modal-content datepicker-container">
<div class="datepicker-date-display">
<span class="year-text">
</span>
<span class="date-text">
</span>
</div>
<div class="datepicker-calendar-container">
<div class="datepicker-calendar">
</div>
<div class="datepicker-footer">
<button class="btn-flat datepicker-clear waves-effect" style="visibility: hidden;" type="button">
</button>
<div class="confirmation-btns">
<button class="btn-flat datepicker-cancel waves-effect" type="button">
Cancel
</button>
<button class="btn-flat datepicker-done waves-effect" type="button">
Ok
</button>
</div>
</div>
</div>
</div>
</div>
和equals
添加到hashcode
类中,以表示两个Server实例何时相等。从您的描述中,您将必须考虑并比较内存,cpu,操作系统和存储。
此后,您可以将Server
映射为filteredList
,以获取唯一的服务器作为键,该值将包含所有重复的服务器实例。您将为映射中的每个键调用一次服务,但是获得结果后,可以使用结果更新作为映射值的所有服务器实例。
Map<Server, List<Server>>