Module  java.base
软件包  java.util

Class Properties

  • All Implemented Interfaces:
    SerializableCloneableMap<Object,Object>
    已知直接子类:
    Provider


    public class Properties
    extends Hashtable<Object,Object>
    Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串。

    属性列表可以包含另一个属性列表作为其“默认值”; 如果在原始属性列表中找不到属性键,则会搜索此第二个属性列表。

    因为Properties从继承Hashtable ,所述putputAll方法可应用于Properties对象。 强烈不鼓励使用它们,因为它们允许调用者插入其键或值不是Strings 应该使用setProperty方法。 如果在包含非String键或值的“受损害” Properties对象上调用storesave方法,则调用将失败。 类似地,如果在包含非String密钥的“受损害”的Properties对象上调用propertyNameslist方法的调用将失败。

    在返回的迭代器iterator (也就是此类的“集合视图”方法entrySet()keySet() ,并values() )可能不是快速失败的(不像Hashtable的实现)。 这些迭代器被保证遍历元素,因为它们在施工时存在一次,并且可能(但不能保证)反映构造后的任何修改。

    load(Reader) / / /2方法从以下指定的简单的面向行的格式将特性加载和存储到基于字符的流中。 load(InputStream) / store(OutputStream, String)方法与加载(读取器)/存储(Writer,String)对相同,除了输入/输出流以ISO 8859-1字符编码编码。 在该编码中不能直接表示的字符可以使用如The Java™ Language Specification第3.3节中定义的Unicode转义来编写; 在转义序列中只允许使用单个“u”字符。

    loadFromXML(InputStream)storeToXML(OutputStream, String, String)方法以简单的XML格式加载和存储属性。 默认情况下,使用UTF-8字符编码,但是如果需要,可以指定特定编码。 需要实现支持UTF-8和UTF-16,并可能支持其他编码。 XML属性文档具有以下DOCTYPE声明:

      <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
    请注意,导出或导入属性时不会访问系统URI(http://java.sun.com/dtd/properties.dtd); 它只是作为一个字符串来唯一地标识DTD,它是:
      <?xml version="1.0" encoding="UTF-8"?>
    
        <!-- DTD for properties -->
    
        <!ELEMENT properties ( comment?, entry* ) >
    
        <!ATTLIST properties version CDATA #FIXED "1.0">
    
        <!ELEMENT comment (#PCDATA) >
    
        <!ELEMENT entry (#PCDATA) >
    
        <!ATTLIST entry key CDATA #REQUIRED> 

    这个类是线程安全的:多个线程可以共享一个Properties对象,而不需要外部同步。

    从以下版本开始:
    1.0
    另请参见:
    Serialized Form
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      protected Properties defaults
      属性列表,其中包含此属性列表中未找到的任何键的默认值。
    • 构造方法摘要

      构造方法  
      Constructor 描述
      Properties​()
      创建一个没有默认值的空属性列表。
      Properties​(Properties defaults)
      创建具有指定默认值的空属性列表。
    • 方法摘要

      所有方法  接口方法  具体的方法  弃用的方法 
      Modifier and Type 方法 描述
      void clear​()
      清除此散列表,使其不包含键。
      Object clone​()
      创建这个散列表的浅拷贝。
      Object compute​(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
      尝试计算指定密钥及其当前映射值的映射(如果没有当前映射,则 null )。
      Object computeIfAbsent​(Object key, Function<? super Object,?> mappingFunction)
      如果指定的键尚未与值相关联(或映射到 null ),则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非是 null
      Object computeIfPresent​(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
      如果指定的密钥的值存在且非空,则尝试计算给定密钥及其当前映射值的新映射。
      boolean contains​(Object value)
      测试一些键映射到这个哈希表中的指定值。
      boolean containsKey​(Object key)
      测试指定的对象是否在此哈希表中的键。
      boolean containsValue​(Object value)
      如果此哈希表将一个或多个键映射到此值,则返回true。
      Enumeration<Object> elements​()
      返回此散列表中值的枚举。
      Set<Map.Entry<Object,Object>> entrySet​()
      返回此地图中包含的映射的Set视图。
      boolean equals​(Object o)
      根据Map界面中的定义,将指定的对象与此Map进行比较以相等。
      void forEach​(BiConsumer<? super Object,? super Object> action)
      对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。
      Object get​(Object key)
      返回指定键映射到的值,如果此映射不包含键的映射,则返回 null
      Object getOrDefault​(Object key, Object defaultValue)
      返回指定键映射到的值,如果此映射不包含键的映射,则返回 defaultValue
      String getProperty​(String key)
      使用此属性列表中指定的键搜索属性。
      String getProperty​(String key, String defaultValue)
      使用此属性列表中指定的键搜索属性。
      int hashCode​()
      按照Map界面中的定义返回此Map的哈希码值。
      boolean isEmpty​()
      测试这个哈希表是否将值映射到值。
      Enumeration<Object> keys​()
      返回此散列表中键的枚举。
      Set<Object> keySet​()
      返回此地图中包含的键的Set视图。
      void list​(PrintStream out)
      将此属性列表打印到指定的输出流。
      void list​(PrintWriter out)
      将此属性列表打印到指定的输出流。
      void load​(InputStream inStream)
      从输入字节流读取属性列表(键和元素对)。
      void load​(Reader reader)
      以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。
      void loadFromXML​(InputStream in)
      将指定输入流中的XML文档表示的所有属性加载到此属性表中。
      Object merge​(Object key, Object value, BiFunction<? super Object,? super Object,?> remappingFunction)
      如果指定的键尚未与值相关联或与null相关联,则将其与给定的非空值相关联。
      Enumeration<?> propertyNames​()
      返回此属性列表中所有键的枚举,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。
      Object put​(Object key, Object value)
      将指定的 key映射到此散列表中指定的 value
      void putAll​(Map<?,?> t)
      将所有从指定地图的映射复制到此散列表。
      Object putIfAbsent​(Object key, Object value)
      如果指定的键尚未与值相关联(或映射到 null )将其与给定值关联并返回 null ,否则返回当前值。
      protected void rehash​()
      增加这个散列表的内部重组能力,从而更有效地适应和访问其条目。
      Object remove​(Object key)
      从此散列表中删除键(及其对应的值)。
      boolean remove​(Object key, Object value)
      仅当指定的密钥当前映射到指定的值时删除该条目。
      Object replace​(Object key, Object value)
      只有当目标映射到某个值时,才能替换指定键的条目。
      void replaceAll​(BiFunction<? super Object,? super Object,?> function)
      将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。
      void save​(OutputStream out, String comments)
      已过时。
      如果在保存属性列表时发生I / O错误,此方法不会抛出IOException。 保存属性列表的首选方法是通过store(OutputStream out, String comments)方法或storeToXML(OutputStream os, String comment)方法。
      Object setProperty​(String key, String value)
      调用 Hashtable方法 put
      int size​()
      返回此哈希表中的键数。
      void store​(OutputStream out, String comments)
      将此 Properties表中的此属性列表(键和元素对)以适合于使用 load(InputStream)方法加载到 Properties表格的格式写入输出流。
      void store​(Writer writer, String comments)
      将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式输出到输出字符流。
      void storeToXML​(OutputStream os, String comment)
      发出表示此表中包含的所有属性的XML文档。
      void storeToXML​(OutputStream os, String comment, String encoding)
      使用指定的编码发出表示此表中包含的所有属性的XML文档。
      Set<String> stringPropertyNames​()
      从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。
      String toString​()
      以一组条目的形式返回此 Hashtable对象的字符串表示形式,以大括号括起来,并以ASCII字符“ ”(逗号和空格)分隔。
      Collection<Object> values​()
      返回此地图中包含的值的Collection视图。
    • 字段详细信息

      • defaults

        protected Properties defaults
        属性列表,其中包含此属性列表中未找到的任何键的默认值。
    • 构造方法详细信息

      • Properties

        public Properties​()
        创建一个没有默认值的空属性列表。
      • Properties

        public Properties​(Properties defaults)
        创建具有指定默认值的空属性列表。
        参数
        defaults - 默认值。
    • 方法详细信息

      • setProperty

        public Object setProperty​(String key,
                                  String value)
        调用Hashtable方法put 提供与getProperty方法的并行性。 强制使用字符串的属性键和值。 返回的值是Hashtable调用put的结果。
        参数
        key - 要放入此属性列表的关键字。
        value - 对应的值为 key
        结果
        该属性列表中指定键的上一个值,如果没有, null
        从以下版本开始:
        1.2
        另请参见:
        getProperty(java.lang.String)
      • load

        public void load​(Reader reader)
                  throws IOException
        以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。

        属性按照行进行处理。 有两种线, 自然线逻辑线 自然行被定义为由一组行终止符字符( \n\r\r\n )或流结尾终止的一行字符。 自然线可以是空白行,注释行或保持键或键的一部分。 逻辑行保存键元素对的所有数据,其可以通过以反斜杠字符\转义行终止符序列而跨越多个相邻自然行\ 请注意,注释行不能以这种方式扩展; 每个自然界线都是自己的评论指标,如下所述。 从输入读取行,直到流到达结束。

        仅包含空白字符的自然行被视为空白,并被忽略。 注释行具有ASCII '#''!'作为其第一个非空白字符; 注释行也被忽略,不对key-element信息进行编码。 除了线终止子,此格式考虑字符空间( ' ''\u0020' ),标签( '\t''\u0009' ),和形式进料( '\f''\u000C' )是白色的空间。

        如果逻辑行分布在几条自然行中,则反斜杠将转义行终止符序列,行终止符序列以及以下行开始处的任何空格对键或元素值都没有影响。 关键和元素解析的剩余部分(加载时)将假设所有构成键和元素的字符在行连续字符被删除后出现在单个自然行上。 请注意,这是不够的,只检查字符行终止序列之前,以决定是否行结束逃脱; 必须有奇数数量的连续反斜线才能转义线终止符。 由于输入是从左到右处理的,所以在线程终止符(或其他地方)之前,非零偶数的2 n个连续的反斜杠在转义处理后编码n个反斜杠。

        关键包含了所有的从第一个非空格字符以及高达行的字符,但不包括第一个转义'='':' ,或大于行结束符等空白字符。 所有这些密钥终止字符可以通过用前面的反斜杠字符进行转义而包含在密钥中; 例如,

        \:\=

        将是双字符键":=" 可以使用\r\n转义序列来包括行终止符。 钥匙之后任何空格被跳过; 如果键后的第一个非空白字符为'='':' ,则会被忽略,并且其后面的任何空白字符也将被跳过。 线上的所有剩余字符都成为相关元素字符串的一部分; 如果没有剩余的字符,则该元素为空字符串"" 一旦构成密钥和元素的原始字符序列被识别,则如上所述执行逃逸处理。

        作为示例,以下三行中的每一行指定密钥"Truth"和相关联的元素值"Beauty"

          Truth = Beauty
          Truth:Beauty
         Truth                    :Beauty 
        作为另一个例子,以下三行指定单个属性:
          fruits                           apple, banana, pear, \
             *                                  cantaloupe, watermelon, \
             *                                  kiwi, mango 
        关键是"fruits" ,相关元素是:
          "apple, banana, pear, cantaloupe, watermelon, kiwi, mango" 
        请注意,在每个\之前会出现一个空格,以便在最终结果中的每个逗号后面会出现一个空格; \线上的\线路终结器和前导空格仅被丢弃, 被一个或多个其他字符替代。

        作为第三个例子,行:

          cheeses 
        指定键为"cheeses" ,相关元素为空字符串""

        键和元素中的字符可以用类似于用于字符和字符串文字的转义序列来表示(参见The Java™ Language Specification的3.3和3.10.6 )。 与用于字符和字符串的字符转义序列和Unicode转义的区别是:

        • 八进制转义不被识别。
        • 字符序列\b 表示退格字符。
        • 该方法在将非有效的转义字符作为错误之前不处理反斜杠字符\ ; 反斜杠默默地掉下来。 例如,在Java字符串中,序列"\z"将导致编译时错误。 相比之下,此方法会静默地丢弃反斜杠。 因此,该方法将两个字符序列"\b"视为等同于单个字符'b'
        • 单引号和双引号不需要转义; 然而,通过上面的规则,单引号和双引号字符之前的反斜杠仍然分别产生单引号和双引号字符。
        • 在Unicode转义序列中只允许使用单个'u'字符。

        此方法返回后指定的流保持打开状态。

        参数
        reader - 输入字符流。
        异常
        IOException - 从输入流读取时是否发生错误。
        IllegalArgumentException - 输入中是否出现格式错误的Unicode转义。
        NullPointerException - 如果 reader为空。
        从以下版本开始:
        1.6
      • load

        public void load​(InputStream inStream)
                  throws IOException
        从输入字节流读取属性列表(键和元素对)。 输入流采用load(Reader)规定的简单的面向行的格式,假定使用ISO 8859-1字符编码; 每个字节是一个拉丁字符。 不在Latin1中的字符以及某些特殊字符在按照The Java™ Language Specification第3.3节中定义的Unicode转义的键和元素中进行表示。

        此方法返回后指定的流保持打开状态。

        参数
        inStream - 输入流。
        异常
        IOException - 从输入流读取时是否发生错误。
        IllegalArgumentException - 如果输入流包含格式不正确的Unicode转义序列。
        NullPointerException - 如果 inStream为空。
        从以下版本开始:
        1.2
      • save

        @Deprecated
        public void save​(OutputStream out,
                         String comments)
        已过时。 如果在保存属性列表时发生I / O错误,此方法不会抛出IOException。 保存属性列表的首选方法是通过store(OutputStream out, String comments)方法或storeToXML(OutputStream os, String comment)方法。
        调用 store(OutputStream out, String comments)方法并禁止抛出的IOExceptions。
        参数
        out - 输出流。
        comments - 属性列表的描述。
        异常
        ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
      • store

        public void store​(Writer writer,
                          String comments)
                   throws IOException
        将此属性列表(键和元素对)写入此Properties表格中,以适合使用load(Reader)方法的格式将输出字符流写入

        Properties表(如果有)的默认表中的属性不会被此方法写出。

        如果comments参数不为空,则首先将ASCII #字符,注释字符串和行分隔符写入输出流。 因此, comments可以作为识别评论。 换行符('\ n'),回车符('\ r')或立即在注释中的换行符后面的回车替换为由Writer生成的行分隔符,如果下一个字符在注释中不是字符#或字符!然后在该行分隔符之后写出ASCII #

        接下来,注释行总是写入,由ASCII #字符组成,当前日期和时间(如当前时间DatetoString方法生成的)和由Writer生成的行分隔符。

        然后,这个Properties表中的每个条目都将被写出,每行一个。 对于每个条目,键字符串被写入,然后是一个ASCII = ,然后是关联的元素字符串。 对于密钥,所有空格字符都用前面的\字符写入。 对于元素,前导空格字符,但不是嵌入或尾随空格字符,写入前面的\字符。 键和元素字符#!= ,和:写入加上正斜杠,以确保它们被正确装载。

        在写入条目之后,输出流被刷新。 此方法返回后,输出流保持打开状态。

        参数
        writer - 输出字符流写入器。
        comments - 属性列表的描述。
        异常
        IOException - 如果将此属性列表写入指定的输出流, IOException抛出一个 IOException
        ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
        NullPointerException - 如果 writer为空。
        从以下版本开始:
        1.6
      • store

        public void store​(OutputStream out,
                          String comments)
                   throws IOException
        将此属性列表(键和元素对)写入此Properties表中,以适合使用load(InputStream)方法加载到Properties表格的格式输出流。

        Properties表(如果有)的默认表中的属性通过此方法写出。

        此方法输出与store(Writer)规定的相同格式的注释,属性键和值,具有以下区别:

        • 流使用ISO 8859-1字符编码编写。
        • 注释中不在拉丁文1中的字符为\u xxxx,用于其相应的unicode十六进制值xxxx
        • 字符小于\u0020和大于字符\u007E在属性键或值被写为\u XXXX为适当的十六进制值XXXX。

        在写入条目之后,输出流被刷新。 此方法返回后,输出流保持打开状态。

        参数
        out - 输出流。
        comments - 属性列表的描述。
        异常
        IOException - 如果将此属性列表写入指定的输出流, IOException抛出一个 IOException
        ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
        NullPointerException - 如果 out为空。
        从以下版本开始:
        1.2
      • storeToXML

        public void storeToXML​(OutputStream os,
                               String comment)
                        throws IOException
        发出表示此表中包含的所有属性的XML文档。

        这种props.storeToXML(os, comment)形式的方法的调用与调用props.storeToXML(os, comment, "UTF-8");

        参数
        os - 发送XML文档的输出流。
        comment - 属性列表的描述,如果没有评论, null
        异常
        IOException - 如果写入指定的输出流导致一个 IOException
        NullPointerException - 如果 os为空。
        ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
        从以下版本开始:
        1.5
        另请参见:
        loadFromXML(InputStream)
      • storeToXML

        public void storeToXML​(OutputStream os,
                               String comment,
                               String encoding)
                        throws IOException
        使用指定的编码发出表示此表中包含的所有属性的XML文档。

        XML文档将具有以下DOCTYPE声明:

          <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 

        如果指定的注释是null则文档中不会存储注释。

        需要一个实现来支持使用“ UTF-8 ”或“ UTF-16 ”编码的XML文档的编写。 实现可以支持额外的编码。

        此方法返回后指定的流保持打开状态。

        参数
        os - 发送XML文档的输出流。
        comment - 属性列表的描述,或 null如果不需要注释)。
        encoding - 支持的名称 character encoding
        异常
        IOException - 如果写入指定的输出流导致一个 IOException
        UnsupportedEncodingException - 如果实现不支持编码。
        NullPointerException - 如果 osnull ,或者如果 encodingnull
        ClassCastException - 如果此 Properties对象包含任何不是 Strings键或值。
        从以下版本开始:
        1.5
        另请参见:
        loadFromXML(InputStream)Character Encoding in Entities
      • getProperty

        public String getProperty​(String key)
        使用此属性列表中指定的键搜索属性。 如果在此属性列表中找不到该键,则会默认属性列表及其默认值递归。 如果找不到属性,该方法返回null
        参数
        key - 属性键。
        结果
        该属性列表中具有指定键值的值。
        另请参见:
        setProperty(java.lang.String, java.lang.String)defaults
      • getProperty

        public String getProperty​(String key,
                                  String defaultValue)
        使用此属性列表中指定的键搜索属性。 如果在此属性列表中找不到该键,则会默认属性列表及其默认值递归。 如果找不到属性,该方法返回默认值参数。
        参数
        key - 哈希表键。
        defaultValue - 默认值。
        结果
        该属性列表中具有指定键值的值。
        另请参见:
        setProperty(java.lang.String, java.lang.String)defaults
      • propertyNames

        public Enumeration<?> propertyNames​()
        返回此属性列表中所有键的枚举,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。
        结果
        枚举此属性列表中的所有键,包括默认属性列表中的键。
        异常
        ClassCastException - 如果此属性列表中的任何键不是字符串。
        另请参见:
        EnumerationdefaultsstringPropertyNames()
      • stringPropertyNames

        public Set<String> stringPropertyNames​()
        从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。 其关键字或值不是String类型的String被省略。

        返回的集合不受此Properties对象的支持。 对此Properties对象的更改不会反映在返回的集合中。

        结果
        该属性列表中的一个不可修改的键集,其中键及其对应的值是字符串,包括默认属性列表中的键。
        从以下版本开始:
        1.6
        另请参见:
        defaults
      • list

        public void list​(PrintStream out)
        将此属性列表打印到指定的输出流。 此方法对调试非常有用。
        参数
        out - 输出流。
        异常
        ClassCastException - 如果此属性列表中的任何键不是字符串。
      • list

        public void list​(PrintWriter out)
        将此属性列表打印到指定的输出流。 此方法对调试非常有用。
        参数
        out - 输出流。
        异常
        ClassCastException - 如果此属性列表中的任何键不是字符串。
        从以下版本开始:
        1.1
      • contains

        public boolean contains​(Object value)
        描述从类复制: Hashtable
        测试一些键映射到这个哈希表中的指定值。 这个操作比containsKey方法贵。

        请注意,此方法的功能与containsValue (它是集合框架中的Map接口的一部分)功能相同。

        重写:
        containsHashtable<Object,Object>
        参数
        value - 要搜索的值
        结果
        true当且仅当某些键映射到equals方法确定的散列表中的value参数时; false否则。
      • containsValue

        public boolean containsValue​(Object value)
        描述从类复制: Hashtable
        如果此哈希表将一个或多个键映射到此值,则返回true。

        请注意,此方法的功能与contains (早于Map接口)相同。

        Specified by:
        containsValue在接口 Map<Object,Object>
        重写:
        containsValueHashtable<Object,Object>
        参数
        value - 要在此散列表中存在的值要进行测试
        结果
        true如果该地图将一个或多个键映射到指定的值
      • get

        public Object get​(Object key)
        描述从类复制: Hashtable
        返回指定键映射到的值,如果此映射不包含键的映射,则返回null

        更正式地,如果该映射包含从k键到值v的映射,使得(key.equals(k)) ,则该方法返回v ; 否则返回null (最多可以有一个这样的映射。)

        Specified by:
        get在接口 Map<Object,Object>
        重写:
        getHashtable<Object,Object>
        参数
        key - 要返回其关联值的键
        结果
        指定键映射到的值,如果此映射不包含该键的映射, null
        另请参见:
        Hashtable.put(Object, Object)
      • remove

        public Object remove​(Object key)
        描述从类复制: Hashtable
        从此散列表中删除键(及其对应的值)。 如果键不在哈希表中,此方法不执行任何操作。
        Specified by:
        remove在接口 Map<Object,Object>
        重写:
        removeHashtable<Object,Object>
        参数
        key - 需要删除的关键
        结果
        密钥映射到此散列表中的值,如果密钥没有映射, null
      • putAll

        public void putAll​(Map<?,?> t)
        说明从类别Hashtable复制
        将所有从指定地图的映射复制到此散列表。 这些映射将替换这个散列表对于指定地图中当前的任何键的任何映射。
        Specified by:
        putAll在接口 Map<Object,Object>
        重写:
        putAllHashtable<Object,Object>
        参数
        t - 要存储在此地图中的映射
      • toString

        public String toString​()
        描述从类复制: Hashtable
        以一组条目的形式返回此Hashtable对象的字符串表示形式,其括在大括号中,并以ASCII字符“ ”(逗号和空格)分隔。 每个条目都显示为关键字,等号为= ,以及相关联的元素,其中使用toString方法将键和元素转换为字符串。
        重写:
        toStringHashtable<Object,Object>
        结果
        这个散列表的字符串表示形式
      • keySet

        public Set<Object> keySet​()
        描述从类复制: Hashtable
        返回此地图中包含的键的Set视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAll ,和clear操作。 它不支持addaddAll操作。
        Specified by:
        keySet在接口 Map<Object,Object>
        重写:
        keySetHashtable<Object,Object>
        结果
        该地图中包含的键的集合视图
      • values

        public Collection<Object> values​()
        描述从类复制: Hashtable
        返回此地图中包含的值的Collection视图。 集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该collection支持元素移除,即从映射中相应的映射,经由Iterator.removeCollection.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。
        Specified by:
        values在接口 Map<Object,Object>
        重写:
        valuesHashtable<Object,Object>
        结果
        该地图中包含的值的集合视图
      • entrySet

        public Set<Map.Entry<Object,Object>> entrySet​()
        描述从类复制: Hashtable
        返回此地图中包含的映射的Set视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作,或者通过迭代器返回的映射条目上的setValue操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.removeSet.removeremoveAllretainAllclear操作。 它不支持addaddAll操作。
        Specified by:
        entrySet在接口 Map<Object,Object>
        重写:
        entrySetHashtable<Object,Object>
        结果
        该地图中包含的映射的集合视图
      • getOrDefault

        public Object getOrDefault​(Object key,
                                   Object defaultValue)
        说明从接口Map复制
        返回指定键映射到的值,如果此映射不包含该键的映射,则返回 defaultValue
        Specified by:
        getOrDefault在接口 Map<Object,Object>
        重写:
        getOrDefaultHashtable<Object,Object>
        参数
        key - 要返回其关联值的键
        defaultValue - 键的默认映射
        结果
        映射指定键的值,如果此映射不包含键的映射, defaultValue
      • forEach

        public void forEach​(BiConsumer<? super Object,? super Object> action)
        说明从接口Map复制
        对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。 除非实现类另有指定,否则按照进入设置迭代的顺序执行操作(如果指定了迭代顺序)。操作引发的异常被转发给调用者。
        Specified by:
        forEach在接口 Map<Object,Object>
        重写:
        forEachHashtable<Object,Object>
        参数
        action - 要为每个条目执行的操作
      • replaceAll

        public void replaceAll​(BiFunction<? super Object,? super Object,?> function)
        说明从界面Map复制
        将每个条目的值替换为对该条目调用给定函数的结果,直到所有条目都被处理或该函数抛出异常。 函数抛出的异常被转发给调用方。
        Specified by:
        replaceAll在接口 Map<Object,Object>
        重写:
        replaceAllHashtable<Object,Object>
        参数
        function - 应用于每个条目的功能
      • putIfAbsent

        public Object putIfAbsent​(Object key,
                                  Object value)
        说明从界面Map复制
        如果指定的键尚未与值(或映射到 null )相关联,并将其与给定值相关联并返回 null ,否则返回当前值。
        Specified by:
        putIfAbsent在接口 Map<Object,Object>
        重写:
        putIfAbsentHashtable<Object,Object>
        参数
        key - 指定值与之关联的键
        value - 与指定键相关联的值
        结果
        与指定键相关联的上一个值,如果没有键的映射, null (A null返回也可以指示映射先前关联的是null的密钥,如果实现支持空值)。
      • remove

        public boolean remove​(Object key,
                              Object value)
        描述从接口Map复制
        仅当指定的密钥当前映射到指定的值时删除该条目。
        Specified by:
        remove在接口 Map<Object,Object>
        重写:
        removeHashtable<Object,Object>
        参数
        key - 与指定值相关联的键
        value - 预期与指定键相关联的值
        结果
        true如果该值被删除
      • replace

        public Object replace​(Object key,
                              Object value)
        描述从接口Map复制
        只有当目标映射到某个值时,才能替换指定键的条目。
        Specified by:
        replace在接口 Map<Object,Object>
        重写:
        replaceHashtable<Object,Object>
        参数
        key - 与指定值相关联的键
        value - 与指定键相关联的值
        结果
        与指定键相关联的上一个值,如果没有键的映射, null (A null返回也可以指示映射以前关联的是null的密钥,如果实现支持空值)。
      • computeIfAbsent

        public Object computeIfAbsent​(Object key,
                                      Function<? super Object,?> mappingFunction)
        描述从类别复制: Hashtable
        如果指定的键尚未与值相关联(或映射到null ),则尝试使用给定的映射函数计算其值,并将其输入到此映射中,除非是null

        如果映射函数返回null ,则不记录映射。 如果映射函数本身引发(未检查)异常,则重新抛出异常,并且不记录映射。 最常见的用法是构造一个用作初始映射值或记忆结果的新对象,如:

           map.computeIfAbsent(key, k -> new Value(f(k)));  

        或者实现一个多值映射Map<K,Collection<V>> ,每个键支持多个值:

           map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);  

        映射函数在计算过程中不应该修改该映射。

        如果映射函数在计算过程中修改了该映射,则该方法将尽力而为地抛出ConcurrentModificationException

        Specified by:
        computeIfAbsent在接口 Map<Object,Object>
        重写:
        computeIfAbsentHashtable<Object,Object>
        参数
        key - 要与其关联的指定值的键
        mappingFunction - 计算值的映射函数
        结果
        与指定键相关联的当前(现有或计算)值,如果计算值为空,则为null
      • computeIfPresent

        public Object computeIfPresent​(Object key,
                                       BiFunction<? super Object,? super Object,?> remappingFunction)
        描述从类复制: Hashtable
        如果指定的密钥的值存在且非空,则尝试计算给定密钥及其当前映射值的新映射。

        如果重映射函数返回null ,则映射将被删除。 如果重映射函数本身引发(未检查)异常,则重新引导异常,并且当前映射保持不变。

        重映射功能在计算过程中不应修改此映射。

        如果重新映射功能在计算过程中修改了该映射,这个方法将尽力而为地抛出一个ConcurrentModificationException

        Specified by:
        computeIfPresent在接口 Map<Object,Object>
        重写:
        computeIfPresentHashtable<Object,Object>
        参数
        key - 要与其关联的指定值的键
        remappingFunction - 计算值的重映射函数
        结果
        与指定键相关的新值,如果没有则为null
      • compute

        public Object compute​(Object key,
                              BiFunction<? super Object,? super Object,?> remappingFunction)
        描述从类复制: Hashtable
        尝试计算指定键的映射及其当前映射的值(如果没有当前映射, null )。 例如,要为值映射创建或附加String msg:
           map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg)) 
        (方法merge()通常更容易用于此类目的。)

        如果重映射函数返回null ,则映射将被删除(如果最初不存在则保持不存在)。 如果重映射函数本身引发(未检查)异常,则重新引导异常,并且当前映射保持不变。

        重映射功能在计算过程中不应修改此映射。

        如果重映射功能在计算过程中修改了该映射,这个方法将尽力而为地抛出一个ConcurrentModificationException

        Specified by:
        compute在接口 Map<Object,Object>
        重写:
        computeHashtable<Object,Object>
        参数
        key - 指定值与之关联的键
        remappingFunction - 用于计算值的重映射函数
        结果
        与指定键相关的新值,如果没有则为null
      • merge

        public Object merge​(Object key,
                            Object value,
                            BiFunction<? super Object,? super Object,?> remappingFunction)
        描述从类复制: Hashtable
        如果指定的键尚未与值相关联或与null相关联,则将其与给定的非空值相关联。 否则,将关联值替换为给定重映射函数的结果,如果结果为null ,则将其null 当组合键的多个映射值时,该方法可能是有用的。 例如,要创建或追加String msg到值映射:
           map.merge(key, msg, String::concat)  

        如果重映射函数返回null ,则映射将被删除。 如果重映射函数本身引发(未检查)异常,则重新引导异常,并且当前映射保持不变。

        重映射功能在计算过程中不应修改此映射。

        如果重映射功能在计算过程中修改了该映射,则该方法将尽力而为地抛出ConcurrentModificationException

        Specified by:
        merge在接口 Map<Object,Object>
        重写:
        mergeHashtable<Object,Object>
        参数
        key - 与其结合的值相关联的键
        value - 要与与密钥相关联的现有值合并的非空值,或者如果没有现有值或与值相关联的空值与密钥相关联
        remappingFunction - 如果存在重新计算值的重映射功能
        结果
        与指定键相关联的新值,如果没有值与该键相关联,则返回null
      • rehash

        protected void rehash​()
        描述从类别复制: Hashtable
        增加这个散列表的内部重组能力,从而更有效地适应和访问其条目。 当哈希表中的键数超过此散列表的容量和载入系数时,将自动调用此方法。
        重写:
        rehashHashtable<Object,Object>
      • clone

        public Object clone​()
        描述从类复制: Hashtable
        创建这个散列表的浅拷贝。 哈希表本身的所有结构都被复制,但是键和值不被克隆。 这是一个相对昂贵的操作。
        重写:
        cloneHashtable<Object,Object>
        结果
        哈希表克隆
        另请参见:
        Cloneable