当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Immutable Collections for Java

授权协议 BSD
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 索正豪
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Immutable Collections for Java (Java不变集合类) 提供了不变的、持久化的 Java 集合类,对集合的元素添加和删除都是创建一个新的拷贝来进行。每份拷贝都共享几乎所有其原来的结构,为了最小化内存消耗,该库包含一个 singly-linked (cons/cddr style) list/stack, 一个整数的基于树的索引列表,一个 2-3 叉树的 map,一个哈希树 map,一个哈希和树的集合。所有集合提供了不变的游标作为标准的迭代器类。提供一个工具类来使用函数风格的算法访问数据。

  • 英文原文链接:https://www.javaspecialists.eu/archive/Issue248.html Exciting news. We now have “immutable collections” in Java 9. Just like Scala (not really). 这真是一个令人兴奋的消息,Java 9 像Scala一样支持了不可变集合. For exampl

  • 不可变集合 Oracle 公司引入一些方便使用的工厂方法,用于创建不可变集合 List,Set,Map 和 Map.Entry 对象。这些高效实用的方法可用来创建空或者非空集合对象。 在 Java SE 8 和更早版本中,我们常用类似 unmodifiableXXX 的集合类方法创建不可变集合对象。举个例子,比如我们想创建一个不可变的 List 对象,可能使用到Collections.unmodi

  • 介绍 Oracle 在2017年3月左右发布Java新版本:Java SE9。陆续我会发表一系列有关Java SE 9新功能的文章。这是本系列的第三篇。 我已经发表了几篇有关Java SE 9新特性的文章。在阅读这篇文章之前,请先阅读以下文章: 在本文中,我会带着大家一起来讨论一下Java SE 9新功能:Immutable List的 工厂方,在讲解的过程中会穿插一些简单而合适的示例。 Java

  • 前言:上次我们分析Collection接口的一些通用功能,还有一些源码的简单分析,接下来我们继续从上往下分析,了解每个接口的特性,以及每个接口下面的实现类底层源码是如何实现的. 一、List接口的特性 官方描述: 该界面的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。 首先List接口继承了Collection接口,是一个有序的集合与

  •  有时候我会用Map.of(k1, v1, k2, v2)来快速构建一个Map。 顺便看了下源代码,其实Map.of的实现是这样子的: static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) { return new ImmutableCollections.MapN<>(k1, v1, k2, v2); } 这里的Ma

  • 1 Lists package com.collections; import com.google.common.collect.Lists; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.IntStream; impo

  • java之不可变对象1(immutable objects in java) an immutable object is an object whose state cannot be modified after it is created. 不可变对象一旦被创建就它的状态就不能被修改。 A classic example of an immutable object is an instan

  • Googgle guava ImmutableCollections 参考文档 Google Guava ImmutableCollections官方文档 Immutable objects have many advantages(不可变类有很多的好处) Safe for use by untrusted libraries(安全的使用不受信任的库),我记得Effective Java中看到过,

  • Collections class in java is a useful utility class to work with collections in java. The java.util.Collections class directly extends the Object class and exclusively consists of the static methods t

  • 在项目开发过程中,有时需要将类定义成不可变(Immutable)类型,例如在一些暴露给第三方的接口参数对象,对于复杂多层次的自定义类,手工编写Immutable类是个繁琐且容易出错的工作,为此写了一个Immutable自动生成工具。 1. mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改。 不可变数据类型:其

  • Google Guava Collections 使用介绍 简介 Google Guava Collections 是一个对 Java Collections Framework 增强和扩展的一个开源项目。由于它高质量 API 的实现和对 Java特性的充分利用,使得其在 Java 社区受到很高评价。笔者主要介绍它的基本用法和功能特性。 使用介绍 Google Guava Collections(

  • Collections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。 注意Collections结尾多了一个s,不是Collection! 我们一般看方法名和参数就可以确认Collections提供的该方法的功能。例如,对于以下静态方法: public static boolean addAll(Collection<? super T> c

  • ImmutableMap 的作用就是:可以让java代码也能够创建一个对象常量映射,来保存一些常量映射的键值对。 分析以下情景,来具体讨论这个的好处。 以下是在js前台的代码,假设现在有需求如下: 根据数据库存的某个key字段,来获得不同的提示名字。有以下3种处理方法 1:用 多个 if else 语句,只要新添加个字段,你就得添加个 if else ,差评 2:用 switch case 语句,

  • Iterator Java的集合类都可以使用for each循环,List、Set和Queue会迭代每个元素,Map会迭代每个key。以List为例: List<String> list = List.of("Apple", "Orange", "Pear"); for (String s : list) { System.out.println(s); } 实际上,Java编译器并不知

  • 前言 不可变类在日常工作中经常用到,如JDK中的String类和所有的包装类。使用不可变类有很多好处,其中之一就有多线程里很重要的线程安全。还有使用简单,不用担心被人有意无意改掉实例的状态等优点。 那么如何实现一个不可变类呢?本文将介绍在Java中如何实现一个不可变类并用实战代码来帮助读者理解。 参考 JSR 133 (Java Memory Model) FAQ Java Language Sp

相关阅读

相关文章

相关问答

相关文档