-
2021-04-08 08:43:20
双层for 循环代码
for(int i=0 ;i
for(int j =0 ;j< list2.size();j++){
if(list1.get(i).getName().equals(list2.get(j).getName())){
list1.get(i).setScholarship(list1.get(i).getScholarship().add(list2.get(j).getScholarship()));
list1.get(i).setTotalGrade(list1.get(i).getTotalGrade().add(list2.get(j).getTotalGrade()));
}
}
}
java8 stream
list1.stream().
forEach(i -> list2.stream().anyMatch(a -> {
boolean judge = false;
if (a.getName().equals(i.getName())) {
i.setScholarship(i.getScholarship().add(a.getScholarship()));
i.setTotalGrade(i.getTotalGrade().add(a.getTotalGrade()));
judge = true;
}
return judge;
}));
这是我目前完成我需求的方式。。。。。。。。。。。。。。。。如果大神们有其他更好的方法,请在下方评论区留下方法。
更多相关内容 -
python跳出双层for循环的解决方法
2021-01-01 11:57:34在二维数组的遍历中,我们经常使用双层for循环。在某些时候,我们并不需要遍历整个二维数组。当条件满足时就应该终止for循环。但是,直接在内层循环中break并不会让外层循环也终止。 二.解决方案 使用for…else…... -
初级Java 结束双层for循环的技巧
2021-02-12 17:02:19/**** @author Administrator* 结束双层for的方法有两个方法**1,标签方法来结束双层for循环*/public class Test8_4_05 {public static void main(String[] args) {//over是用来结束双层for循环语句Over:{for(int i .../**
*
* @author Administrator
* 结束双层for的方法有两个方法
*
* 1,标签方法来结束双层for循环
*/
public class Test8_4_05 {
public static void main(String[] args) {
//over是用来结束双层for循环语句
Over:{
for(int i = 0;i<10;i++) {
System.out.println("uo------------>"+i);
for (int j = 0; j <10; j++) {
if(j==5) {
break Over;
}
System.out.print(i+"+"+j+"="+i+j+"\t");
}
}
}
}
}
第2个方法:boolean 标记来结束双层for循环的方法
boolean f = false;//定义一个布尔类型
for(int i = 0;i<10;i++) {
System.out.println("uo------------>"+i);
for (int j = 0; j <10; j++) {
if(j==5) { //做一个判断,如果判断成立,将进入if内部
System.out.println("结束程序。。。");
f = true;//成立的话,就将上面定义的布尔类型重新赋值true
break;//直接结束内循环
}
System.out.print(i+"+"+j+"="+i+j+"\t");
}
if(f) { //f是true就进入这个if判断
break;//直接结束外部循环
}
}
-
双层for循环赋值
2021-11-24 11:54:55List<Map<String, Object>> cartlist = new ArrayList<...for(String s:shop_unique) { //遍历购物车数据 //购物车处理-加入各门店购物车并删除原购物车数据 List<Map<String,Object>&List<Map<String, Object>> cartlist = new ArrayList<>(); String []shop_unique=shop_uniques.split(","); String []id=ids.split(","); //遍历门店 for(String s:shop_unique) { //遍历购物车数据 //购物车处理-加入各门店购物车并删除原购物车数据 List<Map<String,Object>> goodCart_list=shoppingDao.querySupplierCart(id);//查询购物车 for (Map<String, Object> map : goodCart_list) { map.put("shop_unique", s); cartlist.add(map); } }
-
使用Map优化双层for循环
2021-05-23 14:54:22使用Map优化双层for循环 借鉴原文 :https://blog.csdn.net/qq_45752401/article/details/109526381 1.双层for循环使用场景 一般我们用于合并两个或者多个对象。因为我们实际需要的数据,被两个或者多个对象所持有,...使用Map优化双层for循环
借鉴原文 :https://blog.csdn.net/qq_45752401/article/details/109526381
1.双层for循环使用场景
一般我们用于合并两个或者多个对象。因为我们实际需要的数据,被两个或者多个对象所持有,那么我们有时就需要根据共同特征来合并成一个对象。
2.为什么要使用Map替换双层for:
通常情况下,我们对于数据量比较多的时候,如果使用的双层for,会大大降低程序运行效率,对于数据量相对较少,使用双层for嵌套,是察觉不到什么效果的。下面我为大家模拟一万条数据的情况下,合并成一个集合的效率时间
3.准备数据
3.1 User.java
public class User { private String uid; private String name; private String sex; @Override public String toString() { return "User{" + "uid='" + uid + '\'' + ", name='" + name + '\'' + ", sex='" + sex + '\'' + '}'; } public User(String uid, String name) { this.uid = uid; this.name = name; } public User() { } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
3.2 Person.java
public class Person { private String pid; private String sex; public Person(String pid, String sex) { this.pid = pid; this.sex = sex; } public Person() { } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "Person{" + "pid='" + pid + '\'' + ", sex='" + sex + '\'' + '}'; } }
4.测试案例
4.1模拟数据
public class ForUpdate { public static void main(String[] args) { // 模拟一万条数User数据作为测试 ArrayList<User> ulist = new ArrayList<>(); for (int i = 1; i <= 10000; i++) { ulist.add(new User(i+"","冷言"+i)); } // 模拟一万条Person数据作为测试 ArrayList<Person> plist = new ArrayList<>(); for (int i = 1; i < 10000; i++) { plist.add(new Person(i+"","男"+i)); } } }
4.2使用双层for合并,展示运行时间
// 获取当前系统时间,单位毫秒值 long start = System.currentTimeMillis(); // 遍历集合 for (User u : ulist) { for (Person p : plist) { // 如果user对象的id等于person对象的id if (u.getUid().equals(p.getPid())){ // 需要的数据 u.setSex(p.getSex()); } } } // 展示当前系统时间,单位毫秒值 System.out.println(System.currentTimeMillis()-start);
4.3,使用Map合并,展示运行时间
以下为固定格式,主要是把plist集合的数据封装到Map中:
Map<String,集合内对象> list2Map = 集合名.stream().collect(Collectors.toMap(集合内对象::共同特征, Function.identity()));
实例:以下执行效果是,我想把plist里面我需要的数据,合并到ulist中,他们有个共同特征pid和uid// 为固定格式,plist需要的数据;Person数据对象;getPid为String类型共同特征 Map<String,Person> list2Map = plist.stream().collect(Collectors.toMap(Person::getPid, Function.identity())); // 生成当前系统时间,单位毫秒值 long start = System.currentTimeMillis(); // 遍历集合 for (User user : ulist) { // 通过user的uid,获取map集合的对象 Person person = list2Map.get(user.getUid()); // 如果获取到 if(person != null){ // 执行业务代码 我这里是把person里面的sex放置到user的sex中 user.setSex(person.getSex()); } } // 打印当前系统时间,单位毫秒值 System.out.println(System.currentTimeMillis()-start);
从上面来看,我们不难看出,双层for使用的时间,是Map的好多倍。对于数据量少的,这里我就不展示了,自己自行选择。如果是数据量比较大的,使用Map代替双层for
-
双层for循环相比在单层for循环里面查数据库快得多
2022-03-16 18:06:54} 原本在第一层for循环里面根据vSubstation.id查找数据库,要查找三百次数据库最起码 得一秒钟,修改后100ms左右 结论:各种连接更加消耗性能,与浏览器的tcp连接,与数据库的连接,不要一次有多个请求,很消耗性能 -
js使用双层for循环实现冒泡排序(升序)
2022-05-14 21:15:09用外层for循环实现需要走的趟数(arr.length-1); 用内层for循环实现每一次交换的趟数(arr.length-i-1,j从0开始); 交换两个变量 1.2 举例 数组:[5, 4, 3, 2, 1] 第一趟:[4, 3, 2, 1, 5] 共交换了4次; 第二... -
JavaScript 双层for循环去重
2021-09-14 17:36:41functionunique(arr){ for(vari=0;i<arr.length;i++){ for(varj=i+1;j<arr.length;j++){ if(arr[i]==arr[j]){ arr.splice(j,1); j--; } } } returnar... -
关于双层for循环的简单例子
2021-03-28 14:56:35package hello; import java.util.Scanner; public class Test { public static void main(String[] args) { ...for(int i=0;i<n;i++){ for(int i1 = 0; i1 <= i;i1++) { System.out.print("#"); } System.out -
HTML-js-如何跳出当前循环、所有循环、双层for循环
2021-12-29 20:00:32如何跳出当前循环 <script> let a=0; let b=0; for(let i=0 ;i<5;i++){ for(let j=0 ;j<5;j++){ if(a==1){ continue }else{ a++ } } b++ } console.log(a) console.log(b) </script>... -
java双层for循环
2021-04-11 15:23:11 -
java8的新特性之List集合双层for循环效率优化
2021-02-26 12:37:50首先先来一个案例简单模拟一下:List wifes = new ArrayList();...for(int i=0;i<8000;i++){wifes.add(new Wife(i, i+"的妻子", "000"+i));}for(int i=0;i<8000;i++){husbands.add(new Husband(i, "... -
双层for循环实现图形的打印
2020-12-12 13:13:34双层for循环实现图形的打印 为了进一步加深对于for循环的理解,这次通过案例来学习。通过*和空格“ ”的结合来输出打印for循环的结果。画出一些基本的图形。 1.首先是正方形,不必多说,两次for循环可以解决。 2.在... -
双层for循环的理解
2020-04-04 16:44:52双层for循环对于我这种小白来说简直有点烧脑,因为刚接触JS的话,逻辑思维还没有培养起来,这个时候碰到这样的循环的时候就有些理解吃力了,下面我讲一下自己的理解,如果其他大佬有不同意见欢迎留言。 <script&... -
HashMap解决双层For循环效率问题
2019-12-31 21:48:35测试10w条数据双层for循环耗时 import java.util.ArrayList; import java.util.List; /** * @author 954L * @create 2019/12/31 20:42 */ public class Main { public static void main(String[] args) {... -
Python双层for循环
2019-11-14 17:22:26matrix0 = [[1, 2], [3, 3], [2, 1]] print 'matrix0:', matrix0...matrix1 = [[1 for i in range(2)] for i in range(3)] print 'matrix1:', matrix1 matrix2 = [[0 for i in range(2)] for i in range(3)] print... -
js使用双层for循环实现九九乘法表
2022-05-13 15:14:041. 代码 var str = ''; for(var i=1; i<= 10; i++) { for(var j=1; j<=i; j++) { str += j + '×' + i + '=' + i * j + '\t'; } str += '\n'; } console.log(str); 2. 效果 -
Java打印三角形(双层for循环)
2022-01-10 14:45:07Java打印三角形(双层for循环) 1.第一个三角形: 打印样式: 外层for循环控制行数,内层for循环控制“*”的个数 public static void demo01(){ //行数:4行 for(int i=1;i<=4;i++){ /* 找规律: 第一行... -
Interview_03:双层for循环之break
2020-10-28 20:32:41双层for循环之break 问题: 双层for循环,在内层循环中当满足某些条件时使用了break 问:执行内层break时结束的是内层循环,还是内外层循环都结束? 答案: 只结束内层循环 代码演示: package ... -
还在用双层for循环?快来来试试这招吧(工作问题总结)
2022-01-28 17:20:53其他情况为市区级功能 然后分别统计市,区,市区分别有多少项 现在的情况是在库里面查出来的数据有一百多万条 而我的处理方式也是很粗暴,直接双层for循环暴力分组 我先将所有的itemCode相同的所有数据划分为一组 ... -
Java基础11双层for循环continue 和 break 关键字
2020-03-19 20:19:43for循环 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 循环体 } 需求1:求 1 到 10000 之间偶数的合 // for循环 // for(初始化表达式;循环条件表达式;循环后操作表达式){ // 循环体 /... -
Java双层for循环的解释
2018-03-24 13:25:09首先介绍最常见的双层for循环,写这个的原因就是看清楚for循环的多样化,按照当时需求去写for循环,希望你们能理解,少走弯路,写的不好的,写评论,我会修改的 i++ :是先运行,在加1 ++i :是先加1,在运行 ... -
js使用双层for循环实现倒三角形、正三角形
2022-05-13 14:59:24for(var i=1; i<= 10; i++) { // 外层循环控制行数 for(var j=i; j<=10; j++) { // 里层循环打印的个数不一样 str += '❤'; } str += '\n'; } console.log(str); 或者 var str = ''; for(var i=1; i<=... -
小程序双层for循环
2020-05-06 17:10:38// wx:for-item的值默认为item,第二层循环需要重新起个名字 <view class="container" wx:for="{{categoryVos}}" wx:for-item="item" > <view class="title">服务分类:{{item.missionCategoryName}}&... -
stream替代双层for循环
2020-05-29 12:12:00这是在处理业务中遇到的: 数据如下: public class Book { private String bookId; private String name; private String depName; private String authDepName; public String getBookId() { ... -
【性能优化】两种方案优化双层for循环语句 附代码和实例
2020-01-13 21:40:27两种方案优化实际开发中的双层for循环语句 附代码和实例 现有如下需求,需在订单信息类中根据用户信息类的userId匹配到对应的信息并输出商品skuId。 先给出实体类:用户信息类UserInfo和订单信息类OrderInfo。用户... -
python 双层for循环的跳出
2020-09-04 23:26:501.while.....else的使用... for循环正常执行完成后,else会继续执行 break会跳出for循环,else部分 3,双层for循环的跳出 当次循环正常结束的时候才会执行else中的语句(如果当次循环执行了break,那么else不会执行)