java 构造不可变类集的使用方法

首先用到的就是Collections.unmodifiablexxx()这个函数

剩下的见下面的代码。

据说这个函数有bug,于是乎出了guava

1 import java.util.Collection;
 2 import java.util.Collections;
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 
 7 public class Guava {
 8     public static void main(String[] args) {
 9         Set<String> set=new HashSet<String>();
10         set.add("hello");
11         set.add("insert");
12         Set<String> unmodify=Collections.unmodifiableSet(set);
13         System.out.println(set);
14         
15     }

16 }

时间: 2025-01-02 03:55:42

java 构造不可变类集的使用方法的相关文章

Atitit.&#160;衡量项目规模&#160;----包含的类的数量&#160;.net&#160;java类库包含多少类&#160;多少个api方法??

Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法?? 1 framework 4.5 (10万个api)1 2 Jdk8   57M1 3 Gialen项目2 4 播放器项目 3500个类2 5 Jquery 1.11 (api 305个)2 6 Wordpress 4.2   (函数api详单(约500个api)2 7 Html5  860个api2 7.1 Css2 8 Js  430个3 1 framework 4.5 (10万个ap

java的接口、类、属性、方法各有哪些修饰符

参考博客:http://blog.csdn.net/cao_tao199612/article/details/7458245 1. 接口的修饰符只有:public 2. 类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1.公共类修饰符 public : Java 语言中类 的可访问控制符只有一个: public 即公共的.每个 Java 程序的主类都必须是 public 类

Java 的不可变类 (IMMUTABLE CLASS) 和 可变类 (MUTABLE CLASS)

一.简单定义不可变对象(Immutable Objects)即对象一旦被创建,它的状态(对象的数据,也即对象属性值)就不能改变,反之即为可变对象(Mutable Objects).当满足以下条件时,对象才是不可变的:1. 对象创建以后其状态就不能修改.2. 对象的所有域都是final类型.3. 对象是正确创建的(在对象的创建期间,this引用没有逸出).不可变对象的类即为不可变类(Immutable Class).Java平台类库中包含许多不可变类,如String.基本类型的包装类.BigInt

Integer是不可变类,进入一个方法后,在里面的值的改变不会影响方法外的引用

先看一个小程序 主函数的输出并没有像想像中一样会输出3,而是输出初始化的数值0 这是因为与String类似,所有的包装类都是final类,即不可变类.虽然在代码A处看起来是改变了counter的值,但实际上是创建了另一个对象,并将方法内的counter参数的引用指向了这个新创建的对象,由于是不同的引用,所以不会对方法外的引用有任何的影响.内存图如下所示: 在刚进入方法的时候: 执行counter = counter +1之后,由于Integer是不可变类,要改变它的值,其实是创建了一个新的对象,

Java常见对象Object类中的个别方法

Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成地址值. package common_object; public class Demo extends Object{ } package common_object; public class DemoTest { public static void main(String[] args)

Java基础9-java的类、对象和方法

一.什么是类.对象和方法? 1.类 类用官方解释为:类是一个模板,它描述一类对象的行为和状态.类本身就是一种抽象的概念(以后我们还会介绍抽象类). 举个例子:DOTA中有许多英雄.这些英雄(无论是敏捷还是力量型,无论是天辉还是夜魇)都可以统称为DOTA英雄,DOTA英雄就是一个大类.当然,我们还可以继续划分,比如力量型是一类,敏捷型是一类.天辉是一类,夜魇是一类. 2.类的属性或状态 通过上边的例子,我们发现英雄都有名字.血量.魔法值.技能个数.移动速度等等.这些就是我们这一类的属性或状态.当然

java的不可变类

1.Integer public static void main(String[]args) { Integer i=new Integer(1); System.out.println(i.intValue()); i=2; System.out.println(i.intValue()); } 我们知道Integer的属性value的类型为:final int value; 而方法intValue就是返回value. 很显然,上面两次打印结果是不同的,而都是同一个引用变量i.然道我们对置为

小白的java学习之路 &quot;类的无参方法&quot;

Java注释: //:单行注释 /**/:多行注释 /** */:JavaDoc注释语法: 访问修饰符 返回值类型 方法名(){ 方法体 } 举例: public void run(){ System.out.println(""); } public String robball(){ String ball="球"; return ball; } 方法的返回值: 1.如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该返回值的类型 ret

[转]java 通过反射获取类的全局变量、方法、构造方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.str; public class ZiFuChuan {          public static String ss = "全局变量!!!!!!";     String s2 = null;     public int aa = 1 ;     int aa2;     double dou = 1.1;     Double d = new Dou