有关java的引用传递,直接操作对象本身。直接删除BE的value中某值
HashSet<String> refRegions = BE.get(regionName);
HashSet<String> values = new HashSet<String>();
values.addAll(refRegions);
if(values.contains("AllValues")){
refRegions.clear();
refRegions.add("AllValues");
}
else{
for(String region : values){
refRegions.remove(region);
String[] regionFormat = region.split("_");
if(regionFormat.length==2)
region = regionFormat[1];
else region = regionFormat[0];
String key;
String value;
switch(region.length()){
case 2: value=countryName+"_"+region;
refRegions.add(value); break;
case 4: value=provinceName+"_"+region;
key=countryName+"_"+region.substring(0, 2);
this.addClause(key, value);break;
case 6: value=cityName+"_"+region;
key=provinceName+"_"+region.substring(0, 4);
this.addClause(key, value);break;
default: value=townName+"_"+region;
key=cityName+"_"+region.substring(0, 6);
this.addClause(key, value);break;
}
}
}
代码中,注意,refRegions,并为初始化一个空间,而是直接作为引用指向BE中regionName对应的value。此时,操作refRegions,就是直接操作BE的value,所以:
refRegions.remove(region);相当于,BE.get(regionName).remove(region)
而this.addClause(key, value) 是直接操作BE得到的结果。
从中看出,java引用传递,会直接操作对象本身
有关java的引用传递,直接操作对象本身。直接删除BE的value中某值的更多相关文章
- Java Object 引用传递和值传递
Java Object 引用传递和值传递 @author ixenos Java没有引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用&q ...
- python中的引用传递,可变对象,不可变对象,list注意点
python中的引用传递 首先必须理解的是,python中一切的传递都是引用(地址),无论是赋值还是函数调用,不存在值传递. 可变对象和不可变对象 python变量保存的是对象的引用,这个引用指向堆内 ...
- Java没有引用传递机制,C#有。
Java没有引用传递机制,C#有: public class Obj { private Integer myValue; public Integer getMyValue() { return m ...
- Java参数引用传递之例外:null
今天写链表的时候写了一个函数,实参是一个空链表,应该是按引用传参,但是在函数内修改了链表,外部的链表没有变化. 原来是null作为参数传递的时候,就不是引用传参了. 引自:http://blog.cs ...
- 如何理解java的引用传递
1. 数组的引用传递 public class TestArray { public static void changeAry1(int[] ary){ int[] ary1 = {9,9,9}; ...
- java的引用传递
public class T{ static class Node{ int value; Node left = null; Node right = null; public Node(int v ...
- java 对象传递 是 值传递 还是 引用传递?
这个问题说实话我感觉没有太大的意义. 按第一印象和c++的一些思想去理解的话对象传递是引用传递,因为传递过去的对象的值能被改变. 但是又有很多人,不知道从哪里扣出来一句,java中只有值传递,没有引用 ...
- 理解Java中的引用传递和值传递
关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习 ...
- 关于java中是引用传递还是值传递的问题!!!经常在笔试中遇到,今天终于弄明白了!
关于JAVA中参数传递问题有两种,一种是按值传递(如果是基本类型),另一种是按引用传递(如果是對象).首先以两个例子开始:1)public class Test2 { public static vo ...
随机推荐
- GitHub无法访问或访问缓慢解决办法
缘由 由于众所周知的原因,Github最近无法访问或访问很慢.由于Github支持https,因此此次屏蔽Github采用的方法是dns污染,用户访问github会返回一个错误的IPFQ当然是一种解决 ...
- 第一个lucene程序,把一个信息写入到索引库中、根据关键词把对象从索引库中提取出来、lucene读写过程分析
新建一个Java Project :LuceneTest 准备lucene的jar包,要加入的jar包至少有: 1)lucene-core-3.1.0.jar (核心包) 2) lucene- ...
- SQL Server 执行计划操作符详解(1)——断言(Assert)
前言: 很多很多地方对于语句的优化,一般比较靠谱的回复即使--把执行计划发出来看看.当然那些只看语句就说如何如何改代码,我一直都是拒绝的,因为这种算是纯蒙.根据本人经验,大量的性能问题单纯从语句来看很 ...
- Linux命令—压缩及其他
(1)为了更好的传送和保存文件,需要对某些文件和目录进行压缩和解压缩操作,Linux 提供了强大的压缩.解压缩命令,常用的tar命令. (2)在Linux中,如果要使用储存设备(硬盘.光驱.移动 ...
- PHP(PHP-FPM)手动编译安装
1安装PHP 1.1下载解压 wget http://museum.php.net/php5/php-5.3.5.tar.gz tarxzvf php-5.3.5.tar.gz cdphp-5.3.5 ...
- Checksum软件的简单设计
相信大家平时在测试一些bin文件的时候,经常都会要求计算checksum值,其实就是校验和,非常的简单,比如下图这个软件:
- Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice
浅谈SOAP Webservice和RESTful Webservice REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.RE ...
- Windows2003下用Dreamweaver打开CodeSmith文件设置办法
.在第一行的ASP,字符串后面添加CST,2.找到行ASP,ASA:ActiveServer Pages修改为ASP,ASA,CST:ActiveServer Pages 二.用记事本打开文件2:C: ...
- iOS中 通知中心Text (实例)
指定根视图 self.window.rootViewController = [RootViewController new]; 方法实现: #import "RootViewControl ...
- Swift基础之实现下拉变大和OC下拉变大上拉缩小Demo
Swift语言实现下拉变大效果:(上拉缩小效果随后研究......) 关键代码:方法一: self.automaticallyAdjustsScrollViewInsets = false; ...