精华内容
下载资源
问答
  • public List<Category> findAll() { Jedis jedis = JedisUtil.getJedis(); Set<Tuple> cSet = jedis.zrangeWithScores("category", 0, -1); List<Category> clist = nul...
    public List<Category> findAll() {
            Jedis jedis = JedisUtil.getJedis();
            Set<Tuple> cSet = jedis.zrangeWithScores("category", 0, -1);
            List<Category> clist = null;
            Category category =null;
            //直接从redis读取
            if (cSet != null && cSet.size() != 0) {
                /*
                记得初始化list,不然会报错,list为空,
                不new ArrayList,直接用list,会为空,
                而且要在for循环外边初始化,否则每次都会初始化,都是新的一个list,最后list只保存了最后那个数据
                */
                clist = new ArrayList<>();
                for (Tuple tuple : cSet) {
                    category = new Category();
                    category.setCid((int) tuple.getScore());
                    category.setCname(tuple.getElement());
                    clist.add(category);
                }
            }
            //第一次在数据库读取,在存入redis
            else {
                clist = dao.findAllCategory();
                for (int i = 0; i < clist.size(); i++) {
                    jedis.zadd("category", clist.get(i).getCid(), clist.get(i).getCname());
                }
            }
            return clist;
        }

     

    展开全文
  • 我一开始是这样写的,结果是每一次list.add的时候,把之前add进去的list都变成了最新的RowData的 Dim RowData As New TORowData Dim list As New List(Of TORowData) For Each dr As DataRow In Table.Rows ...

     我一开始是这样写的,结果是每一次list.add的时候,把之前add进去的list都变成了最新的RowData的值

    
    Dim RowData As New TORowData
    Dim list As New List(Of TORowData)
    
    For Each dr As DataRow In Table.Rows
                    
                    RowData.TO_NO = HeaderData.TO_NO '转储单号
                    RowData.TO_WAREHOUSE = HeaderData.TO_WAREHOUSE '仓库ID
                    RowData.TOR_MATERIAL = dr.Item("MaterialID") '物料编号
                    RowData.TOR_DSTORAGETYPE = dr.Item("StorageType") '目的存储类型
                    RowData.TOR_DBIN = dr.Item("StorageBin") '目的库位
                    RowData.TOR_DQTY = dr.Item("MaterialQuantity") '目的数量
                    list.Add(RowData)
    
    Next

    后来把Dim RowData As New TORowData放进循环里就好了

    
    
    Dim list As New List(Of TORowData)
    
    For Each dr As DataRow In Table.Rows
                    Dim RowData As New TORowData
                    RowData.TO_NO = HeaderData.TO_NO '转储单号
                    RowData.TO_WAREHOUSE = HeaderData.TO_WAREHOUSE '仓库ID
                    RowData.TOR_MATERIAL = dr.Item("MaterialID") '物料编号
                    RowData.TOR_DSTORAGETYPE = dr.Item("StorageType") '目的存储类型
                    RowData.TOR_DBIN = dr.Item("StorageBin") '目的库位
                    RowData.TOR_DQTY = dr.Item("MaterialQuantity") '目的数量
                    list.Add(RowData)
    
    Next

     

    展开全文
  • 问题描述:假设有一个字典data,其键不定,可能随时添加键(这不是关键),某一个键下面对应的为一个长度为10的list,初始化为0,然后我想修改某些键下面的列表中的某一个,比如data有一个键’k’,对应的为[0...
  • 通过循环给多个按钮绑定点击事件时,点击事件内的代码只要涉及到了循环变量,则需要在事件代码外用额外变量先处理再到事件代码内去做操作,且该额外变量只能声明在循环内部(声明在循环外部,则都会以最后一次的循环...

    这篇博文可以总结为一句话:通过循环给多个按钮绑定点击事件时,点击事件内的代码只要涉及到了循环变量,则需要在事件代码外用额外变量先处理再到事件代码内去做操作,且该额外变量只能声明在循环内部(声明在循环外部,则都会以最后一次的循环变量值去赋值)。
    20190212修

    给按钮绑定点击事件很简单:
    1.拖拽public函数到Button组件的OnClick上;
    2.代码给Button绑定(button.onClick.AddListener);
    循环也很简单:for、foreach
    本文讨论下两者结合时,产生的一个坑(个人和同事都在工作中遇到过)

    需求:最近在做一个热更相关的模型资源库(后续有空会发上来),其中有一个UI方面的功能是,点击一系列动态生成的按钮中的某一个时,记录下text内容(根据这个去显示模型啊什么的,这里不做讨论)。

    实现:

    //ps:很简单的功能对吧
    private string currentModelName = "";
    private List<Button> items = new List<Button>();
    
    private void BindClickEventWithItems()int len = items.Length;
    	for(int i=0;i<len;i++){
    	string str = items[i].GetComponentInChildren<Text>().text;
    		items[i].onClick.AddListener(delegate{
    			currentModelName = str;
    		});
    	}

    分析:
    循环得到每一个item,在点击按钮的时候把自身text的内容传递给currentModelName变量。没问题对吧?items的长度单独计算一次,text的内容用一个临时变量存储,很完美是吧?

    我们点击运行unity,怎么点击任何一个按钮都是最后items中最后一个按钮的text内容?

    再来看看,长度计算肯定是没有问题的,那么问题只可能出在1:临时的string变量,2:for循环内。
    循环内,我们做了两件事1:把按钮的text内容存储在str,2:绑定事件(点击时把存储的值赋给currentModelName)。

    现在的结果是:无论点击哪一个按钮,传给currentModelName的都是最后一个item的内容,表面上看,我们把每一个按钮的text内容都分别传递给了currentModelName,但是仔细一看,我们在处理这个动作的时候只用了一个临时变量作为临时存储在传递,所有的动作都是存储在它里面,循环多少次,它就被写入数据多少次,当循环结束的时候,写入的就是最后一次的数据,每一次执行点击事件的时候都去这个内存里面取数据,但是都是最后一次的,所以显示的也都是最后一次的数据。

    那么,去掉这个临时变量,直接把text的内容赋值不行吗?

    private string currentModelName = "";
    	private List<Button> items = new List<Button>();
    	void BindClickEventWithItems() {
    		int len = items.Count;
    		for (int i = 0; i < len; i++)
    		{
    			items[i].onClick.AddListener(delegate {
    				currentModelName = items[i].GetComponentInChildren<Text>().text;
    			});
    		}
    	}
    
    

    就像这样。很遗憾会出现一个错误:“IndexOutOfRangeException: Array index is out of range.”

    这个行不通,根源在临时变量。既然是“一个”临时变量导致的,那么我用items.Length个来处理呢?

    private string currentModelName = "";
    	private List<Button> items = new List<Button>();
    	void BindClickEventWithItems() {
    		int len = items.Count;
    		for (int i = 0; i < len; i++)
    		{
    			items[i].onClick.AddListener(delegate {
    				currentModelName = items[i].GetComponentInChildren<Text>().text;
    			});
    		}
    	}
    

    1.直接使用组件的text内容再去赋值行不通
    2.一个临时变量会存在内容被覆写
    3.每一种情况都在循环里面声明一个临时变量去处理即可

    ps:空间性上确实存在浪费,但是因为是临时变量,所以会在一定时候被GC自动回收,它没有全局变量那么久的生命力,也不像静态变量那样顽固。

    ps:如有错漏,请指正。如有更好的方案,欢迎交流。

    展开全文
  • List for循环与对象的问题

    千次阅读 2014-09-01 17:45:12
    如果list的集合中的数据超过1条数据,当for循环第二次进入系统时下面"(2)"中的do{}方法内,对象竟然取得的内容是重复的,不知道什么原因, 最后我将“(1)”的方法修改成 先 new 对象,再对象赋值,才把问题解决...
    下面这里代码中的所有变量都在for循环之外创建,对于对象的创建我还是有点不明白,如果按照下面的“(1)”的写法,
    如果list的集合中的数据超过1条数据,当for循环第二次进入系统时下面"(2)"中的do{}方法内,对象竟然取得的内容是重复的,不知道什么原因,
    最后我将“(1)”的方法修改成 先 new 对象,再给对象赋值,才把问题解决。在此记录一下
    
    
    for (int i =0;i<querySocialSecurityS.size();i++ ) {
    					
    	//处理同一张点单
    	//判断下一条订单id是否与上一条数据id一致,不一致则循环下一张订单
    	securityVo= querySocialSecurityS.get(i);// <span style="color:#FF0000;">(1)</span>
    	
    	tempSecurityVo= querySocialSecurityS.get(i);
    	
    	securityId=securityVo.getCesId();
    	
    	empSecurityId = String.valueOf(Helper.requestOID(CS_EMP_SECURITY).longValue());
    	
    	System.out.println("securityId=="+securityId);
    	do{//<span style="color:#FF0000;">(2)</span>
    		securityVo= querySocialSecurityS.get(i);						
    
    		if(securityId.equals(securityVo.getCesId())){
    			//把原办理记录对应的社保公积金办理明细赋给新的办理记录
    			insertSecurityItemValues=new StringBuffer("");
    			insertSecurityItemValues.append("values('"+String.valueOf(Helper.requestOID(CS_EMP_SECURITY_ITEM).longValue())+"',")
    			.append("'"+empSecurityId+"',").append("'"+securityVo.getProduct_id()+"',").append(securityVo.getBase()+",")
    			.append(securityVo.getE_ratio()+",").append(securityVo.getP_ratio()+",").append(securityVo.getMoney()+",")
    			.append(securityVo.getE_money()+",").append(securityVo.getP_money()+",").append(securityVo.getE_add_money()+",")
    			.append(securityVo.getP_add_money()+",").append("'"+securityVo.getSecurity_product_id()+"',");
    			if(securityVo.getIs_join_bd()!=null){
    				insertSecurityItemValues.append("'"+securityVo.getIs_join_bd() +"',");
    			}else{
    				insertSecurityItemValues.append("null,");
    			}
    	 
    			insertSecurityItemValues.append("'"+securityVo.getCreate_user_id()+"',")
    			.append(" sysdate   ,").append("'0',").append(securityVo.getExact_e_money()+",")
    			.append(securityVo.getExact_p_money()+",").append(securityVo.getBase1()+",").append(securityVo.getBase_salary()+")");
    			
    			tempSql=new StringBuffer();
    			
    			list_sql.add(tempSql.append(insertSecurityItem).append(insertSecurityItemValues).toString());
    			
    			++i;
    			if(i==querySocialSecurityS.size()){
    				break;
    			}
    		}else{
    			//同一张订单明细循环完成。
    			bool=false;
    			--i;
    		}
    	}while(bool);
    	
    	bool = true ;
    	
    	//新增新的办理记录
    	insertSecurityValues=new StringBuffer("values('"+empSecurityId+"',")
    	.append("'"+tempSecurityVo.getCompany_id()+"',").append("'"+tempSecurityVo.getEmp_post_id()+"',")
    	.append("'"+tempSecurityVo.getCust_code()+"',").append("'"+tempSecurityVo.getCust_name()+"',")
    	.append("'"+tempSecurityVo.getEmp_service_item_id()+"',").append("'"+tempSecurityVo.getEmp_service_id()+"',")
    	.append("'"+tempSecurityVo.getSocial_unit_id()+"',").append("'"+tempSecurityVo.getApply_man()+"',")
    	.append("to_date('"+UtilsDate.getDateTimesStr(tempSecurityVo.getApply_date())+"','yyyy-mm-dd,hh24:mi:ss'),");
    	if(tempSecurityVo.getApply_remark()!=null){
    		insertSecurityValues.append("'"+tempSecurityVo.getApply_remark()+"',");
    	}else{
    		insertSecurityValues.append("null,");
    	}
    	insertSecurityValues.append("'"+tempSecurityVo.getTransact_man()+"',").append("to_date('"+UtilsDate.getDateTimesStr(tempSecurityVo.getTransact_date())+"','yyyy-mm-dd,hh24:mi:ss'),")
    	.append("'"+tempSecurityVo.getTransact_type_id()+"',");
    	
    	if(tempSecurityVo.getTransact_remarks()!=null){
    		insertSecurityValues.append("'"+tempSecurityVo.getTransact_remarks()+"',");
    	}else{
    		insertSecurityValues.append("null,");
    	}
    	insertSecurityValues.append("'"+nianfen+"06',").append("null,")
    	.append("'"+tempSecurityVo.getFund_month()+"',");
    	if(tempSecurityVo.getBack_reason()!=null){
    		insertSecurityValues.append("'"+tempSecurityVo.getBack_reason()+"',");
    	}else{
    		insertSecurityValues.append("null,");
    	}
    	insertSecurityValues.append("'"+tempSecurityVo.getAgent_id()+"',").append("'"+tempSecurityVo.getSecurity_status_bd()+"',")
    	.append("'"+tempSecurityVo.getSerial_no()+"',").append("'"+tempSecurityVo.getCreate_user_id()+"',")
    	.append(" sysdate  ,").append("'0',")
    	.append("'"+tempSecurityVo.getSecurity_group_id()+"',").append("'"+tempSecurityVo.getEmp_account_id()+"',");
    	if(tempSecurityVo.getPre_id()!=null){
    		insertSecurityValues.append("'"+tempSecurityVo.getPre_id()+"',");
    	}else{
    		insertSecurityValues.append("null,");
    	} 
    	
    	if(tempSecurityVo.getTransact_reason_bd()!=null){
    		insertSecurityValues.append("'"+tempSecurityVo.getTransact_reason_bd()+"' )") ; 
    	}else{
    		insertSecurityValues.append("null )") ;
    	}		
    	 
    	tempSql = new StringBuffer();
    	list_sql.add(tempSql.append(insertSecurity).append(insertSecurityValues).toString());
    
    	//--修改原记录的结束日期、状态为停办
    	updateSecurity = new StringBuffer("update cs_emp_security set end_month='"+nianfen+"05',security_status_bd='5',stop_remarks='补差金额计算后调整',last_update_user_id='"+user_id+"',last_update_date=sysdate where id='"+securityId+"' ");
    	list_sql.add(updateSecurity.toString());
    }

    展开全文
  • @[TOC]风变编程·第5关 for循环和while循环-消灭该死的重复 课程目标 List item 掌握for…in…循环的格式与特点,了解其数据传递 熟练掌握for…in…与range()函数的结合使用 掌握while循环的格式与特点 区别for…in...
  • for循环读取i

    千次阅读 2019-03-02 16:06:30
    而调用时,需要对变量i求,解析程序首先会在事件处理程序内部查找,但i没有定义,然后又到方法外部查找,此时有定义,但i的是4(只有i大于4才会停止执行for循环),因此,就会取到该——这正是闭包(匿名函数...
  • 实体bean放进list集合值重复的问题

    千次阅读 2017-06-12 12:43:36
    实体bean放进list集合值重复
  • 自定义的类: class SS{ String a; ...这为什么增强for循环里面不是不能修改其集合或者arr的的吗?为什么那个自定义的类 调用的get.set方法修改的临时变量s 的 list集合里的也跟着修改了?
  • 遍历一个数组,将这个数组里面的值赋值给对象的某个属性,将对象添加进list,结果每个list都是一样的。 解决方法:在for循环外查询该对象,在for循环里面重新new一个对象,使用BeanUtils.copyProperties(old,...
  • rm(list=ls()) data <- read.table("MS_identified_information.txt",header = T,sep = "\t",quote="",na.strings = "",row.names = 1,comment.char = "") name1 <- paste("H1299",sep = "_",c(1:3)) name2 &...
  • Linux for循环之列表for循环

    万次阅读 多人点赞 2017-07-22 12:38:28
    for循环是Linux shell 中最常用的结构。for 循环有三种结构:一种结构是列表for循环;第二种结构是不带列表for循环;第三种结构是类C风格的for循环。 本篇博文重点看列表for循环,列表for循环大的格式固定,在列表...
  • 一、增强for循环 1. 三种常用for循环 // 普通for循环遍历 for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ","); } // 迭代器循环遍历 Iterator iterator = list.iterator(); while...
  • 本文实例讲述了python关于矩阵重复赋值覆盖问题的解决方法。分享大家供大家参考,具体如下: import itertools import numpy as np comb = list(itertools.combinations(list(range(regions)), 2)) bands_info = ...
  • 如何用jquery 实行对 select选中赋值 且不重复拼接 option ![图片说明](https://img-ask.csdn.net/upload/201808/06/1533563305_984956.png) 用了第二个方法 但是 不会回显 ![图片说明]...
  • 问题:list集合循环添加对象,添加完后遍历list集合发现,对象都一样,都是最后一个对象的。 问题原因:在循环外实例化对象。 解决方法有两种: 1.循环外定义变量,循环内实例化对象赋值 2.循环内定义变量并实例化...
  • for循环使用和until循环

    千次阅读 2014-07-23 19:02:02
    do#for循环会遍历整个列表,并将列表中的每一个依次赋值给变量循环体done之前介绍的for循环的格式形如:for VARNAME in list;dostatement...done这种格式的for循环是将list中的每一个依次值赋值给变量VARNAME,...
  • shell脚本之for循环

    万次阅读 2018-12-18 11:37:28
    for 命令 ...bash shell提供了 for 命令,允许你创建一个遍历一系列循环。每次迭代都使用其中一个来执行已定义好的一组命令。下面是bash shell中 for 命令的基本格式。 for var in list do ...
  • Android开发,从数据库读取一些用户的数据,我使用的是List集合来存储一个用户对象,然后传前台,但却是发现取到的数据居然是重复的。我当时的写法大概是下面这样的 //后台读取数据库的对象数据 List<User>...
  • 前几天,一个同事写接口,他的要求是,我传来一个List ids,这个里面可能有重复的id,需要帮她去重。我想这个用循环是比较麻烦的,有什么简单的吗?然后就找到了下面的几个方法,总结一下。 二、去重思路 两...
  • 前言 循环就是让我们的程序重复地执行某些业务。在程序设计时,需要处理大量的重复动作,采用循环结构可以降低程序书写的长度和复杂度,可使复杂问题简单化,提高... 三种常用for循环#普通for循环遍历 for (int i = 0;
  • 循环做了很多天就是结果不对。 困扰了我很多天,在网上查到几篇文章, map查询出数据, 对数据修改key 同value 将map中key改变,value不变。遇到错误 其中分析讲的最好的是 修改Map中确定key对应的value问题 ...
  • Python for循环

    千次阅读 2013-07-05 17:58:28
    其它大多数语言没有像 Python 一样的强大的 list 数据类型,所以你需要亲自做很多事情,指定开始,结束和步长,来定义一定范围的整数或字符或其它可重复的实体。但是在 Python 中,for 循环简单地在一个列表上循环,...
  • Java中,循环对bean的属性进行赋值

    千次阅读 2020-08-24 15:55:41
    我们通常的做法就是通过getter/setter方法进行一个一个进行赋值,这样的话书写起来太复杂了,并且太重复了。我尝试写了一个工具类,能够对各种场景下的对象进行相互赋值。 功能介绍 可以为将要赋值的对象进行单个...
  • if判断语句,for循环和while循环

    千次阅读 2020-07-25 20:58:23
    if判断语句,for循环和while循环 if判断语句 if if作用: 控制代码是否被python执行 ...案例:· 要求能输入一个,然后赋值给age变量,判断age的大小,如果大于等于18,则打印"已成年",否则打印"未成年
  • java 高级for循环

    千次阅读 2016-11-24 20:05:09
    //从java 5.0开始,Java语言就有加强版的for循环 高级for循环是集合中(Collection)迭代器的简写形式。即集合中的迭代器可以使用高级for来代替。格式:for(数据类型 变量名:被遍历的集合(Collection)或数组) {...
  • idea 快捷键系列(一)增强for循环

    万次阅读 2019-05-05 19:49:01
    一.list的增强for循环 set的增强for循环的用法 map增强for循环的用法: 不能这样使用 必须获取key才可以 map必须是类不能是基本数据类型,而且注意区分大小写不要写错了 iter 自动生成增强for ...
  • 所有我决定用私有方法单独查出相应字段,然后通过增强for给每一个对象赋值。这样免除了多余条,也前台传递了完整的数据。 // 根据entName:企业名称,structureCode:登录人部门代码 roleCodes:权限代码 查询待...
  • java 超级for循环

    万次阅读 2014-12-29 11:01:10
    List list = new ArrayList(); list.add("LOL"); list.add("CF"); list.add("NZ"); // 传统的for for(int i=0;i<list.size();i++){ System.out.println(i);... // FOR-EACH for(String s : list){
  • 问题普通情况下,在BAT脚本中,是不能对变量循环赋值的。原因在cmd控制台,运行set /?可以得到解释: 添加了延迟环境变量扩充的支持。该支持总是按默认值被停用,但也可以通过 CMD.EXE 的 /V 命令行开关而被启用/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,585
精华内容 30,634
关键字:

for循环给list赋值值重复