请对下面代码进行优化改造;(代码改造题) Java public class TestController { public static void main(String[] args) { //假设下面两个集合分别有六万数据,对下面代码进行优化改良 List<User> largeList = new ArrayList<>(); List<User> smallList = new ArrayList<>(); for (User user : largeList) { for (User test : smallList) { if (user.getId().equals(test.getId())){ System.out.println("业务输出"); } } } } } @Data class User { private Long id; private String name; }
时间: 2023-06-05 12:04:10 浏览: 93
TestController.java
好的,我会根据您的要求回答问题和进行代码优化。关于代码部分,我认为可以使用HashSet来存储smallList中的id,然后只需要遍历一次largeList,将每个用户的id和HashSet中的id进行匹配,如果匹配成功则输出业务信息,这样可以避免嵌套遍历造成的时间复杂度过高。改造后的代码如下: Java public class TestController { public static void main(String[] args) { List<User> largeList = new ArrayList<>(); List<User> smallList = new ArrayList<>(); Set<Long> idSet = new HashSet<>(); for (User user : smallList) { idSet.add(user.getId()); } for (User user : largeList) { if (idSet.contains(user.getId())) { System.out.println("业务输出"); } } } } @Data class User { private Long id; private String name; }
阅读全文