zoukankan      html  css  js  c++  java
  • 有关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引用传递,会直接操作对象本身

  • 相关阅读:
    多线程与Socket编程
    正则表达式
    委托事件泛型
    C#基础加强
    随笔
    不设置JAVA_HOME运行eclipse
    CentOS7.x系统中使用Docker时,在存储方面需要注意的问题
    【转】关于高可用负载均衡的探索-基于Rancher和Traefic
    Rancher 容器管理平台-免费视频培训-链接及内容-第三季
    使用Rancher的RKE快速部署Kubernetes集群
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205540.html
Copyright © 2011-2022 走看看