精华内容
下载资源
问答
  • java的参数传递(只有传递没有引用传递)

    万次阅读 多人点赞 2019-07-31 19:25:14
    Java只有传值调用(传递),没有传址调用(址传递或者引用传递)。所以在java方法改变参数的是不会改变原变量的的,但为什么改变引用变量的属性却可以呢?请看下面的解答。 java的数据类型 Java...

    Java中只有传值调用(值传递),没有传址调用(址传递或者引用传递)。所以在java方法中改变参数的值是不会改变原变量的值的,但为什么改变引用变量的属性值却可以呢?请看下面的解答。

    java中的数据类型

    Java中数据类型分为两大类:基本类型和引用类型。相应的,变量也分这两种类型:基本类型和引用类型。

    基本类型的变量保存原始值,即它代表的值就是数值本身;

    而引用类型的变量保存的值是引用值,"引用值"指向内存空间的地址,代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。

    基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress。

    引用类型包括:类、接口类型和数组。

    java中只有值传递

    在日常编码中,会经常看到如下现象:

    1、对于基本类型参数,在方法体内对参数进行重新赋值,不会改变原有变量的值。

    2、对于引用类型参数,在方法体内对参数进行重新赋予引用,不会改变原有变量所持有的引用。

    3、方法体内对参数进行运算,不会改变原有变量的值。

    4、对于引用类型参数,方法体内对参数所指向对象的属性进行操作,将改变原有变量所指向对象的属性值。

    举个例子:

    public class Main {
    
        private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){
    
            b = true;
    
            boo = new Boolean(true);
    
            arr[0] = true;
    
        }
    
           //测试
    
        public static void main(String[] args) {
    
            boolean b = false;
    
            Boolean boo = new Boolean(false);
    
            Boolean[] arr = new Boolean[]{false};
    
            getMiddleOne(b, boo, arr);
    
            System.out.println(b);
    
            System.out.println(boo.toString());
    
            System.out.println(arr[0]);
    
            /**
    
            * output:
    
            * false
    
            * false
    
            * true
    
            */
    
        }
    
    }

    我们只要了解了下面两点就可以解答上面的现象了:

    1、基本数据类型的值就是数值本身,所以示例中的b的值就是false;包装类因为会自动装箱拆箱,所以可以和基本类型一样处理,所以示例中boo的值就是false;数组是引用类型,所以arr的值就是指向该Boolean[]的引用。

    2、java中只有值传递没有引用传递,所以传入getMiddleOne方法的三个参数分别是b的值拷贝, boo的值拷贝, arr的值拷贝。

    通过上面两点就可以清楚了,getMiddleOne方法中执行的 b=true 和 boo = new Boolean(true) 都是把新值赋给了他们的拷贝,所以不改变原变量的值;同样,arr[0] = true 是把true复制给了arr的拷贝所指向的数组的第一个元素,arr的值和arr的拷贝的值都是该数组的引用,所以arr的拷贝所指向的数组和arr所指向的数组是同一个,所以改变arr的拷贝的数组的元素会同样影响到原变量arr。

    总结

    java中只有值传递,基本类型传递的是值的副本,引用类型传递的是引用的副本。

     

    展开全文
  • 判断某个是否在给出的区间列表中   需求说明: 今天在做解析用户上传的Excel文件时,遇到一个问题需要去判断解析出来的一行的投资金额是否落在页面录入的某个投资金额区间内,Excel文件的格式如下: 页面...

    判断某个值是否在给出的区间列表中

     

    需求说明:

    今天在做解析用户上传的Excel文件时,遇到一个问题需要去判断解析出来的一行的投资金额是否落在页面录入的某个投资金额区间内,Excel文件的格式如下:

    页面录入的环节如下:

     

    待解决问题:

    在解析完Excel文件后,循环解析出来的列表,每一行都是一个对象,取出对象的投资金额,这时候是可以拿到页面录入的产品投资金额区间列表,两个重要的数据都已经获取到,那么怎么取判断这个投资金额会落在某个投资区间内呢或者投资金额不会落在任何一个区间。

     

    解决方案:

    可以设置一个count计数器来累加这个投资金额是否在这个区间列表中的每一个区间中,然后判断这个count计算器的值,如果等于0,说明这个投资金额没有落在任何一个投资区间中,那么这个就是不合规数据,相反只要count是大于0 的数,那么该投资金额就是符合规范的数据。

     

    代码实现;

    测试类:

    package com.qdfae.jdk.collections;
    
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.junit.Test;
    
    import com.qdfae.jdk.domain.ListingTradeInvestVo;
    
    /**
     * 判断某个值是否在给出的区间列表中
     *
     * @author hongwei.lian
     * @date 2018年8月6日 下午7:15:26
     */
    public class TradeInvestListTest {
    	
    	/**
    	 * 判断某个值是否在给出的区间列表中
    	 *
    	 * @author hongwei.lian
    	 * @date 2018年8月6日 下午7:15:48
    	 */
    	@Test
    	public void test1() {
    		//-- 存放投资金额区间列表
    		List<ListingTradeInvestVo> tradeInvestList = new ArrayList<>();
    		tradeInvestList.add(new ListingTradeInvestVo(new BigDecimal("10.00"), new BigDecimal("20.00")));
    		tradeInvestList.add(new ListingTradeInvestVo(new BigDecimal("30.00"), new BigDecimal("50.00")));
    		tradeInvestList.add(new ListingTradeInvestVo(new BigDecimal("60.00"), new BigDecimal("100.00")));
    		//-- 解析Excel得出的每一行投资金额
    		BigDecimal tradeMoney = new BigDecimal("45");
    		//-- 在认购区间列表的个数
    		int inCount = 0;
    		for (int j = 0; j < tradeInvestList.size(); j++) {
    			ListingTradeInvestVo tradeInvest = tradeInvestList.get(j);
    			boolean moreEqualCompare = tradeMoney.compareTo(tradeInvest.getInvestAmountMin()) >= 0;
    			boolean lessCompare = tradeMoney.compareTo(tradeInvest.getInvestAmountMax()) < 0;
    			boolean lessEqualCompare = tradeMoney.compareTo(tradeInvest.getInvestAmountMax()) <= 0;
    			if (j == tradeInvestList.size()-1) {
    				//-- 如果是最后一组,则使用lessEqualCompare
    				if (moreEqualCompare && lessEqualCompare) {
    					inCount++;
    				}
    			} else {
    				//-- 使用lessCompare
    				if (moreEqualCompare && lessCompare) {
    					inCount++;
    				}
    			}
    		}
    		if (inCount == 0) {
    			System.out.println(tradeMoney + "不在认购区间内");
    		}
    		if (inCount > 0) {
    			System.out.println(tradeMoney + "在认购区间内");
    		}
    	}
    
    }
    

    实体类:

    package com.qdfae.jdk.domain;
    
    import java.io.Serializable;
    import java.math.BigDecimal;
    
    import org.springframework.format.annotation.DateTimeFormat;
    
    /**
     * 项目交易起投金额个对应年化收益率
     *
     * @author hongwei.lian
     * @date 2018年4月13日 上午10:35:48
     */
    public class ListingTradeInvestVo implements Serializable {
    
    	private static final long serialVersionUID = 1273211355896054195L;
    	
    	/**
    	 * 唯一id,自增主键
    	 */
    	private Integer id;
    	/**
    	 * 挂牌产品Id
    	 */
    	private Integer projectId;
    	/**
    	 * 起投金额
    	 */
    	private java.math.BigDecimal investAmountMin;
    	/**
    	 * 对应起投金额的上限
    	 */
    	private java.math.BigDecimal investAmountMax;
    	/**
    	 * 对应年化收益率,没有乘以%
    	 */
    	private java.math.BigDecimal investProfit;
    	/**
    	 * 创建时间
    	 */
    	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  
    	private java.util.Date createTime;
    	/**
    	 * 创建操作人Id
    	 */
    	private Integer createOperatorId;
    	/**
    	 * 更新时间
    	 */
    	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  
    	private java.util.Date updateTime;
    	/**
    	 * 更新操作人Id
    	 */
    	private Integer updateOperatorId;
    	
    	public ListingTradeInvestVo() {}
    	
    	public ListingTradeInvestVo(Integer id, Integer projectId, BigDecimal investAmountMin, BigDecimal investAmountMax, BigDecimal investProfit) {
    		this.id = id;
    		this.projectId = projectId;
    		this.investAmountMin = investAmountMin;
    		this.investAmountMax = investAmountMax;
    		this.investProfit = investProfit;
    	}
    	
    	public ListingTradeInvestVo(BigDecimal investAmountMin, BigDecimal investAmountMax) {
    		super();
    		this.investAmountMin = investAmountMin;
    		this.investAmountMax = investAmountMax;
    	}
    
    	public void setId(Integer value) {
    		this.id = value;
    	}
    	public Integer getId() {
    		return this.id;
    	}
    	public void setProjectId(Integer value) {
    		this.projectId = value;
    	}
    	public Integer getProjectId() {
    		return this.projectId;
    	}
    	public void setInvestAmountMin(java.math.BigDecimal value) {
    		this.investAmountMin = value;
    	}
    	public java.math.BigDecimal getInvestAmountMin() {
    		return this.investAmountMin;
    	}
    	public java.math.BigDecimal getInvestAmountMax() {
    		return investAmountMax;
    	}
    	public void setInvestAmountMax(java.math.BigDecimal investAmountMax) {
    		this.investAmountMax = investAmountMax;
    	}
    	public void setInvestProfit(java.math.BigDecimal value) {
    		this.investProfit = value;
    	}
    	public java.math.BigDecimal getInvestProfit() {
    		return this.investProfit;
    	}
    	public void setCreateTime(java.util.Date value) {
    		this.createTime = value;
    	}
    	public java.util.Date getCreateTime() {
    		return this.createTime;
    	}
    	public void setCreateOperatorId(Integer value) {
    		this.createOperatorId = value;
    	}
    	public Integer getCreateOperatorId() {
    		return this.createOperatorId;
    	}
    	public void setUpdateTime(java.util.Date value) {
    		this.updateTime = value;
    	}
    	public java.util.Date getUpdateTime() {
    		return this.updateTime;
    	}
    	public void setUpdateOperatorId(Integer value) {
    		this.updateOperatorId = value;
    	}
    	public Integer getUpdateOperatorId() {
    		return this.updateOperatorId;
    	}
    	@Override
    	public String toString() {
    		return "ListingTradeInvestVo [id=" + id + ", projectId=" + projectId + ", investAmountMin=" + investAmountMin
    				+ ", investProfit=" + investProfit + ", createTime=" + createTime + ", createOperatorId="
    				+ createOperatorId + ", updateTime=" + updateTime + ", updateOperatorId=" + updateOperatorId + "]";
    	}
    }
    
    

    测试结果:

    输入投资金额为45的结果:

    输入投资金额为55的结果:

     

    展开全文
  • js判断数组对象是否存在某个

    万次阅读 2019-01-16 10:02:28
    js判断数组对象是否存在某个 var arr = [{ name: "回锅肉", value: "0" }, { name: "小炒肉", value: "1" }] var result = arr.some(function(item) { if (item...

    js判断数组中对象是否存在某个值

    var arr = [{
        name: "回锅肉",
        value: "0"
    }, {
        name: "小炒肉",
        value: "1"
    }]
    var result = arr.some(function(item) {
        if (item.name == "小炒肉") {
            return true;
        }
    })
    console.log(result);//result 为true时表示数组内已存在 false表示不存在

     

    展开全文
  • 在字符串,列表,元组,字典,都可以用in与not in 来判断是否存在某个。 字符串: >>> a='baidu' >>> 'ba' in a True >>> 'ab' in a False 列表: >>> b=['baidu','taobao...
    判断是否存在某个值

    万能的in与not in:
    在字符串,列表,元组,字典中,都可以用in与not in 来判断是否存在某个值。
    字符串:

    >>> a='baidu'
    >>> 'ba' in a
    True
    >>> 'ab' in a
    False
    

    列表:

    >>> b=['baidu','taobao','jingdong',3]
    >>> 3 in b
    True
    >>> 'taobar' in b
    False
    

    元组:

    >>> c=('taobao','jingdong')
    >>> 'taobao' in c
    True
    >>> 'tatao' in c
    False
    

    字典:
    如果不加keys或者values,只比较key

    >>> d={'taobao':12,'jingdong':23}
    >>> 'taobao' in d
    True
    >>> 12 in d
    False
    >>> 12 in d.keys()
    False
    >>> 12 in d.values()
    True
    

    在python2还可以使用has_key方法

    >>> d.has_key('taobao')
    True
    >>> d.has_key('taob3')
    False
    
    判断是否存为空值

    方法一:
    在Python中,False,0,’’,[],{},()都为假,因此可以直接进行逻辑运算。建议使用这种方法,性能更好。
    比如:

    a=[]
    if a:
    	print 22
    else:
    	print 33
    > if d['jingdong']:
    ...     print 22
    ...
    22
    

    方法二:
    可以用len()这个函数来比较。

    >>> len(a)
    0
    >>> a=''
    >>> b=[]
    >>> len(a)
    0
    >>> len(b)
    0
    >>> e={}
    >>> len(e)
    0
    
    
    展开全文
  • 比如:我想要的列表: wanted_value_list= ['want1', 'want2', 'want3'] exist_list = [[['want1', 'want2'], ['others', 'want1'], ['others', 'others']] # exist是一个list的list的list的str。 # 此处的...
  • python 获取唯一In this article, we will be understanding 3 ways to get unique values from a Python list. While dealing with a huge amount of raw data, we often come across situations wherein we need...
  • python列表查找Hi Folks! In this article, we will have a look at the various ways to find the average... 在本文,我们将介绍在Python List查找列表平均的各种方法 。 In general, an average is a va...
  • python去除列表中的None和nan

    千次阅读 2020-07-23 10:12:28
    首先去除None: list_a=[None,1,1,3] while None in list_a: list_a.remove(None) 这样就可以了。 2 但是这个nan很无解,因为他是在显示出来才表示的nan,如果只是用math或者numpy的nan是没办法去除的。 没法...
  • js从一个数组筛选出另一个数组中存在 这里从arr筛选arr1中存在,arr2为筛选结果数组 方式一:使用两个for循环 let arr=["1","2","3","4","5"]; let arr1=["2","1","4","6"]; let arr2=[]; for(let...
  • #删除列表中的重复的,保留重复的第一个 s=[1,2,3,2,9,2,4,8,3,5,5,6,3,8,3,6,7,8] print(s) #print(l.count(9)) i=0 while i(s): if s.count(i)>1: pos=s.index(s[i]) print("pos:",pos)
  • C++判断mapkey是否存在

    万次阅读 2019-04-15 22:07:03
    C++ mapkey值存在情况判定 1、count函数 count函数用于统计key值在map出现的次数,map的key不允许重复,因此如果key存在返回1,不存在返回0 if (testMap.count(key) == 0) cout << "no this key" &...
  • Python 如何修改列表中的每一个 文章目录Python 如何修改列表中的每一个说明写法:一、最二的写法二、标准的写法三、高级的写法四、列表解析...生成一个新列表,遍历原列表 a , 把每个加 1 后存在列表里,最后
  • 1.可以使用Arrays类binarySearch(Object[] a, Object key) 方法来查找是否存在某个值,如果某个值存在则返回值大于0,反之返回值则小于0 优点:使用二分查找法,效率快捷。 缺点:查询的数组必须是有序的,如果...
  • 判断字典是否存在某个value存在输出True,不存在输出False def find_value(dir_data,fvalue): result = False for key in dir_data.keys(): if(dir_data[key] == fvalue): result = True bre...
  • 直接上示例代码 import pandas as pd df1 = pd.DataFrame([[1, 1000, 23241], [1111, 2, 4], [5, 23, 25]], columns=['a', 'b', 'c']) list1 = [1, 5] df2 = df1[df1['a'].isin(list1)] df3 = df1[~df1['a'].isin...
  • 一般在shell判断是否存在一个列表中时我们会第一想到case,比如这样: abc(){ echo "abc" } abb(){ echo "abb" } case $1 in abc) abc ;; abb) abb ;; *) echo "error&...
  • 判断List是否存在某个

    千次阅读 2017-10-25 09:59:31
    判断List是否存在某个 我找了好多资料发现只能用穷举判断的方式来操作,如果有好的方法麻烦大家留言,代码贴出 ${fns:getMenuList()}" var="status"> c:if test="${status.id=='667bf2169a8a4d3693702ce991...
  • php检查数组是否存在一个

    万次阅读 2018-04-25 10:41:46
    PHP in_array() 函数检查数组是否存在某个,如果存在则返回 TRUE ,否则返回 FALSE 。 语法: bool in_array( mixed needle, array array [, bool strict] ) 参数说明: 参数 说明 needle 需要...
  • 代码如下: -- 查看某是否为表tbl的key function table.kIn(tbl, key) if tbl == nil then return false end for k, v in pairs(tbl) do if k == key then return true end...
  • 判断数组对象是否存在某个?

    千次阅读 2020-03-21 11:07:05
    判断数组对象是否存在某个? var result=this.currentPositionInfo.some(function (item) { if(item.Type===1){ return true } }) console.log(result) ...
  • 判断某个是否存在指定枚举类

    万次阅读 2020-07-10 19:40:53
    开篇 如果在这里获得过启发和思考,希望点赞支持...那么该字段只能存储 1,2,3,4这几个,由于该是前端传到后台的,无法保证正确因此后端通常会进行校验该。 我的思路 对于该类型的字段通常会使用枚举类表示
  • 数组是否存在指定存在就删除 var str = ["a", "b", "c"]; var index = str.indexOf("a"); if(index>-1){//大于0 代表存在, str.splice(index,1);//存在就删除 } console.log(str);//["b", "c"] 数组...
  • // 获取 checkbox 的 onChange = (val,obj) =&gt; { // 保存ids if (this.selectedIds.indexOf(val) === -1) { // 不存在,则添加 this.selectedIds.push(val) } else { // 存在,则删除 this.selectedId...
  • eg: 对象Message{String msgNo,int fee} ListA,ListB分别有上亿条,如何对比返回两个list...msgNo及fee均相同的sameList,ListAmsgNo在ListB存在的onlyExistAList,ListBmsgNo在ListA存在的onlyExistBList
  • 用access数据库,OLE DB.NET提供数据 假设access数据库存在A表,A表中存在B字段 怎样判断A表的B字段里的内容存在一个C的 判断是否存在 存在 执行操作1 不存在 执行操作2 初学者求教育
  • C++(14):判断mapkey是否存在

    万次阅读 多人点赞 2018-12-18 15:30:48
    map的使用过程会有根据map是否存在某个键值来决定是否向里面赋值的操作,这里介绍两种方式 1.find函数 iterator find ( const key_type& key ); 如果key存在,则find返回key对应的迭代器,如果key不存在...
  • Python判断列表中是否存在某元素

    万次阅读 2018-11-09 13:08:12
    成员运算符 运算符 ...如果在指定的序列中没有找到返回 True,否则返回 False 实例: #-*- coding:utf-8 -*- python 3.6.2 lista=[1,'5','s','cf'] if 1 in lista: print('1 在列表lista'...
  • mysql查询字段中存在某个

    千次阅读 2018-12-14 10:14:40
    select 字段名from 表名where locate('1',字段名) select 字段名 from 表名where 字段名like '%1%' select 字段名 from 表名where find_in_set('1',字段名) find_in_set使用前提是字段是使用英文逗号进行分隔的...
  • 获得列表最大/最小值的索引 ll = [3, 8, 5, 7, 2, 4] print(ll.index(max(ll))) # 获得列表最大索引 # 1 print(ll.index(min(ll))) # 4 获得字典最大/最小值的key dd = {'key33':33, 'key44':44, 'key77':...
  • dataset 怎么查找数据列是否存在某个?举例说明 A b c 110 2 3 105 58 99 125 56 80 查找a列是否存在180

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,528,976
精华内容 1,411,590
关键字:

值列表中没有值存在