Module java.management

Class TabularDataSupport

java.lang.Object
javax.management.openmbean.TabularDataSupport
所有已实现的接口:
Serializable, Cloneable, Map<Object,Object>, TabularData

public class TabularDataSupport extends Object implements TabularData, Map<Object,Object>, Cloneable, Serializable
TabularDataSupport类是实现了TabularDataMap接口的开放数据类,内部基于哈希映射数据结构。
自从:
1.5
参见:
  • Nested Class Summary

    Nested classes/interfaces declared in interface java.util.Map

    Map.Entry<K,V>
  • Constructor Summary

    Constructors
    Constructor
    Description
    创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有默认的初始容量(101)和默认的加载因子(0.75)。
    TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)
    创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有指定的初始容量和加载因子。
  • Method Summary

    Modifier and Type
    Method
    Description
    Object[]
    计算在此TabularData实例中将用于引用指定的复合数据value参数的索引,如果将其添加到此实例中。
    void
    clear()
    从此TabularDataSupport实例中删除所有行。
    clone()
    返回此TabularDataSupport实例的克隆:克隆是通过调用super.clone()获得的,然后克隆底层映射。
    boolean
    如果且仅当此TabularData实例包含索引为指定keyCompositeData值(即一行)时,返回true
    boolean
    如果且仅当此TabularData实例包含索引为指定keyCompositeData值(即一行)时,返回true
    boolean
    如果且仅当此TabularData实例包含指定值时,返回true
    boolean
    如果且仅当此TabularData实例包含指定的CompositeData值时,返回true
    返回此TabularDataSupport实例中包含的索引到行映射的集合视图。
    boolean
    equals(Object obj)
    将指定的obj参数与此TabularDataSupport实例进行比较,以检查是否相等。
    get(Object key)
    此方法简单地调用get((Object[]) key)
    get(Object[] key)
    返回此TabularData实例中索引为keyCompositeData值,如果没有映射到key的值,则返回null
    返回描述此TabularData实例的表格类型
    int
    返回此TabularDataSupport实例的哈希码值。
    boolean
    如果此TabularDataSupport实例不包含任何行,则返回true
    keySet()
    返回此TabularDataSupport实例的底层映射中包含的用于索引行的键的集合视图。
    put(Object key, Object value)
    此方法简单地调用put((CompositeData) value),因此忽略其可能为nullkey参数。
    void
    put(CompositeData value)
    value添加到此TabularData实例。
    void
    putAll(Map<?,?> t)
    将指定映射t中包含的所有值添加到此TabularData实例中。
    void
    putAll(CompositeData[] values)
    values中包含的所有元素添加到此TabularData实例中。
    remove(Object key)
    此方法简单地调用remove((Object[]) key)
    remove(Object[] key)
    从此TabularData实例中删除索引为keyCompositeData值,并返回已删除的值,如果没有索引为key的值,则返回null
    int
    size()
    返回此TabularDataSupport实例中的行数。
    返回此TabularDataSupport实例的字符串表示形式。
    values()
    返回此TabularDataSupport实例中包含的行的集合视图。

    Methods declared in class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • TabularDataSupport

      public TabularDataSupport(TabularType tabularType)
      创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有默认的初始容量(101)和默认的加载因子(0.75)。

      此构造函数简单地调用this(tabularType, 101, 0.75f);

      参数:
      tabularType - 描述此TabularData实例的表格类型;不能为空。
      抛出:
      IllegalArgumentException - 如果表格类型为null。
    • TabularDataSupport

      public TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)
      创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有指定的初始容量和加载因子。
      参数:
      tabularType - 描述此TabularData实例的表格类型;不能为空。
      initialCapacity - HashMap的初始容量。
      loadFactor - HashMap的加载因子。
      抛出:
      IllegalArgumentException - 如果初始容量小于零,加载因子为非正数,或表格类型为null。
  • Method Details

    • getTabularType

      public TabularType getTabularType()
      返回描述此TabularData实例的表格类型
      指定者:
      getTabularType 在接口 TabularData
      返回:
      表格类型。
    • calculateIndex

      public Object[] calculateIndex(CompositeData value)
      计算在此TabularData实例中将用于引用指定的复合数据value参数的索引,如果将其添加到此实例中。此方法检查指定value的类型有效性,但不检查计算的索引是否已用于引用此TabularData实例中的值。
      指定者:
      calculateIndex 在接口 TabularData
      参数:
      value - 要计算其在此TabularData实例中的索引的复合数据值;必须与此实例的行类型相同的复合类型;不能为null。
      返回:
      指定value在此TabularData实例中将具有的索引。
      抛出:
      NullPointerException - 如果valuenull
      InvalidOpenTypeException - 如果value不符合此TabularData实例的行类型定义。
    • containsKey

      public boolean containsKey(Object key)
      如果且仅当此TabularData实例包含索引为指定keyCompositeData值(即一行)时,返回true。如果key无法转换为Object实例的一维数组,则此方法简单地返回false;否则返回调用this.containsKey((Object[]) key)的结果。
      指定者:
      containsKey 在接口 Map<Object,Object>
      参数:
      key - 要测试其在此TabularData实例中存在性的索引值。
      返回:
      如果此TabularData索引具有指定键的行值,则返回true
    • containsKey

      public boolean containsKey(Object[] key)
      如果且仅当此TabularData实例包含索引为指定keyCompositeData值(即一行)时,返回true。如果keynull或不符合此TabularData实例的TabularType定义,则此方法简单地返回false
      指定者:
      containsKey 在接口 TabularData
      参数:
      key - 要测试其在此TabularData实例中存在性的索引值。
      返回:
      如果此TabularData索引具有指定键的行值,则返回true
    • containsValue

      public boolean containsValue(CompositeData value)
      如果且仅当此TabularData实例包含指定的CompositeData值时,返回true。如果valuenull或不符合此TabularData实例的行类型定义,则此方法简单地返回false
      指定者:
      containsValue 在接口 TabularData
      参数:
      value - 要在此TabularData实例中测试其存在的行值。
      返回值:
      如果此TabularData实例包含指定的行值,则返回true
    • containsValue

      public boolean containsValue(Object value)
      如果此TabularData实例包含指定的值,则返回true
      指定者:
      containsValue 在接口 Map<Object,Object>
      参数:
      value - 要在此TabularData实例中测试其存在的行值。
      返回值:
      如果此TabularData实例包含指定的行值,则返回true
    • get

      public Object get(Object key)
      此方法简单地调用get((Object[]) key)
      指定者:
      get 在接口 Map<Object,Object>
      参数:
      key - 要返回其关联值的键
      返回值:
      指定键映射到的值,如果此映射不包含键的映射关系,则返回null
      抛出:
      NullPointerException - 如果keynull
      ClassCastException - 如果key不是类型Object[]
      InvalidKeyException - 如果key不符合此TabularData实例的TabularType定义
    • get

      public CompositeData get(Object[] key)
      返回索引为keyCompositeData值,如果没有映射到key的值,则返回null,在此TabularData实例中。
      指定者:
      get 在接口 TabularData
      参数:
      key - 要获取其值的索引在此TabularData实例中;必须符合此TabularData实例的行类型定义;不得为null。
      返回值:
      key对应的值。
      抛出:
      NullPointerException - 如果keynull
      InvalidKeyException - 如果key不符合此TabularData实例的TabularType定义
    • put

      public Object put(Object key, Object value)
      此方法简单地调用put((CompositeData) value),因此忽略其key参数,该参数可以为null
      指定者:
      put 在接口 Map<Object,Object>
      参数:
      key - 一个被忽略的参数。
      value - 要放入的CompositeData
      返回值:
      被放入的值
      抛出:
      NullPointerException - 如果valuenull
      ClassCastException - 如果value不是类型CompositeData
      InvalidOpenTypeException - 如果value不符合此TabularData实例的TabularType定义
      KeyAlreadyExistsException - 如果根据此TabularData实例的TabularType定义,value参数的键已经映射到现有值
    • put

      public void put(CompositeData value)
      从接口复制的描述: TabularData
      value添加到此TabularData实例。 value的复合类型必须与此实例的行类型相同(即由this.getTabularType().getRowType()返回的复合类型),并且在此TabularData实例中,索引与要添加的value计算出的索引相同的现有值不得存在。 value的索引是根据此TabularData实例的TabularType定义计算的(请参见TabularType.getIndexNames())。
      指定者:
      put 在接口 TabularData
      参数:
      value - 要作为新行添加到此TabularData实例的复合数据值;必须与此实例的行类型的复合类型相同;不得为null。
    • remove

      public Object remove(Object key)
      此方法简单地调用remove((Object[]) key)
      指定者:
      remove 在接口 Map<Object,Object>
      参数:
      key - 表示要移除的键的Object[]
      返回值:
      与指定键关联的先前值,如果键没有映射,则返回null
      抛出:
      NullPointerException - 如果keynull
      ClassCastException - 如果key不是类型Object[]
      InvalidKeyException - 如果key不符合此TabularData实例的TabularType定义
    • remove

      public CompositeData remove(Object[] key)
      从此TabularData实例中移除索引为keyCompositeData值,并返回已移除的值,如果没有索引为key的值,则返回null
      指定者:
      remove 在接口 TabularData
      参数:
      key - 要在此TabularData实例中获取其值的索引;必须符合此TabularData实例的行类型定义;不得为null。
      返回值:
      与指定键关联的先前值,如果键没有映射,则返回null
      抛出:
      NullPointerException - 如果keynull
      InvalidKeyException - 如果key不符合此TabularData实例的TabularType定义
    • putAll

      public void putAll(Map<?,?> t)
      将包含在指定映射t中的所有值添加到此TabularData实例中。 如果可能,此方法将此映射中包含的值的集合转换为CompositeData值数组,然后调用方法putAll(CompositeData[])。 请注意,指定映射t中使用的键将被忽略。 例如,此方法允许将另一个具有相同行类型(但可能具有不同索引名称)的TabularData实例的内容添加到此实例中。
      指定者:
      putAll 在接口 Map<Object,Object>
      参数:
      t - 要将其值作为新行添加到此TabularData实例的映射;如果tnull或为空,则此方法返回而不执行任何操作。
      抛出:
      NullPointerException - 如果t中的值为null
      ClassCastException - 如果t中的值不是CompositeData的实例。
      InvalidOpenTypeException - 如果t中的值不符合此TabularData实例的行类型定义。
      KeyAlreadyExistsException - 如果根据此TabularData实例的TabularType定义计算的t中的值的索引已经映射到此实例中的现有值,或者t中的两个值具有相同的索引。
    • putAll

      public void putAll(CompositeData[] values)
      values中的所有元素添加到此TabularData实例中。如果values中的任何元素不满足put中定义的约束,或者如果values中的任何两个元素根据此TabularData实例的TabularType定义计算的索引相同,则会抛出描述失败的异常,并且不会添加values的任何元素,从而使此TabularData实例保持不变。
      指定者:
      putAll 在接口 TabularData
      参数:
      values - 要作为新行添加到此TabularData实例的复合数据值数组;如果valuesnull或为空,则此方法返回而不执行任何操作。
      抛出:
      NullPointerException - 如果values的元素为null
      InvalidOpenTypeException - 如果values的元素不符合此TabularData实例的行类型定义(即其TabularType定义)
      KeyAlreadyExistsException - 如果根据此TabularData实例的TabularType定义计算的values的元素的索引已经映射到此实例中的现有值,或者values的两个元素具有相同的索引
    • clear

      public void clear()
      从此TabularDataSupport实例中删除所有行。
      指定者:
      clear 在接口 Map<Object,Object>
      指定者:
      clear 在接口 TabularData
    • size

      public int size()
      返回此TabularDataSupport实例中的行数。
      指定者:
      size 在接口 Map<Object,Object>
      指定者:
      size 在接口 TabularData
      返回:
      TabularDataSupport实例中的行数。
    • isEmpty

      public boolean isEmpty()
      如果此TabularDataSupport实例不包含任何行,则返回true
      指定者:
      isEmpty 在接口 Map<Object,Object>
      指定者:
      isEmpty 在接口 TabularData
      返回:
      如果此TabularDataSupport实例不包含任何行,则返回true
    • keySet

      public Set<Object> keySet()
      返回此TabularDataSupport实例的基础映射中包含的键的集合视图,用于索引行。此Set中包含的每个键都是不可修改的List<?>,因此返回的集合视图是一个Set<List<?>>,但出于兼容性原因声明为Set<Object>。该集合由此TabularDataSupport实例的基础映射支持,因此对TabularDataSupport实例的更改会反映在集合中,反之亦然。该集合支持元素删除,通过Iterator.remove()Set.remove(java.lang.Object)Set.removeAll(java.util.Collection<?>)Set.retainAll(java.util.Collection<?>)Set.clear()操作。它不支持Set.add(E)Set.addAll(java.util.Collection<? extends E>)操作。
      指定者:
      keySet 在接口 Map<Object,Object>
      指定者:
      keySet 在接口 TabularData
      返回:
      用于索引此TabularDataSupport实例的行的键的集合视图(Set<List<?>>)。
    • values

      public Collection<Object> values()
      返回此TabularDataSupport实例中包含的行的集合视图。返回的Collection是一个Collection<CompositeData>,但出于兼容性原因声明为Collection<Object>。返回的集合可用于遍历值。该集合由基础映射支持,因此对TabularDataSupport实例的更改会反映在集合中,反之亦然。该集合支持元素删除,通过Iterator.remove()Collection.remove(java.lang.Object)Collection.removeAll(java.util.Collection<?>)Collection.retainAll(java.util.Collection<?>)Collection.clear()操作。它不支持Collection.add(E)Collection.addAll(java.util.Collection<? extends E>)操作。
      指定者:
      values 在接口 Map<Object,Object>
      指定者:
      values 在接口 TabularData
      返回:
      包含在此TabularDataSupport实例中的值的集合视图(Collection<CompositeData>)。
    • entrySet

      public Set<Map.Entry<Object,Object>> entrySet()
      返回此TabularDataSupport实例中包含的索引到行映射的集合视图。返回集合中的每个元素都是一个Map.Entry<List<?>,CompositeData>,但出于兼容性原因声明为Map.Entry<Object,Object>。每个映射条目的键都是不可修改的List<?>。该集合由此TabularDataSupport实例的基础映射支持,因此对TabularDataSupport实例的更改会反映在集合中,反之亦然。该集合支持元素移除,可以通过Iterator.remove()Collection.remove(java.lang.Object)Collection.removeAll(java.util.Collection<?>)Collection.retainAll(java.util.Collection<?>)Collection.clear()操作来移除相应的映射。不支持Collection.add(E)Collection.addAll(java.util.Collection<? extends E>)操作。

      重要提示:不要使用返回的集合视图中包含的Map.Entry元素的setValue方法。这样做会破坏此TabularDataSupport实例中包含的索引到行映射。

      指定者:
      entrySet 在接口 Map<Object,Object>
      返回:
      包含此映射中的映射的集合视图(Set<Map.Entry<List<?>,CompositeData>>)。
      参见:
    • clone

      public Object clone()
      返回此TabularDataSupport实例的克隆:通过调用super.clone()获得克隆,然后克隆基础映射。仅对基础映射进行浅克隆,即不对索引和行值进行克隆,因为它们是不可变的。
      覆盖:
      clone 在类 Object
      返回:
      此实例的克隆。
      参见:
    • equals

      public boolean equals(Object obj)
      将指定的obj参数与此TabularDataSupport实例进行比较,以确定它们是否相等。

      仅当以下所有语句都为真时,返回true

      • obj不为null,
      • obj还实现了TabularData接口,
      • 它们的表类型相等,
      • 它们的内容(即所有CompositeData值)相等。
      这确保了对于TabularData接口的不同实现作为obj参数时,此equals方法能正常工作。
       
      指定者:
      equals 在接口 Map<Object,Object>
      指定者:
      equals 在接口 TabularData
      覆盖:
      equals 在类 Object
      参数:
      obj - 要与此TabularDataSupport实例进行比较的对象;
      返回:
      如果指定的对象等于此TabularDataSupport实例,则返回true
      参见:
    • hashCode

      public int hashCode()
      返回此TabularDataSupport实例的哈希码值。

      TabularDataSupport实例的哈希码是用于equals比较中使用的所有信息元素的哈希码之和(即:其表类型和其内容的哈希码,其中内容定义为所有CompositeData值)。

      这确保了对于任何两个TabularDataSupport实例t1t2,如果t1.equals(t2),则t1.hashCode()==t2.hashCode(),这是Object.hashCode()方法的一般契约所要求的。

      但是,请注意,实现TabularData接口的另一个类的实例可能与此TabularDataSupport实例相等(由equals(java.lang.Object)定义),但如果计算方式不同,则可能具有不同的哈希码。

      指定者:
      hashCode 在接口 Map<Object,Object>
      指定者:
      hashCode 在接口 TabularData
      覆盖:
      hashCode 在类 Object
      返回:
      TabularDataSupport实例的哈希码值
      参见:
    • toString

      public String toString()
      返回此TabularDataSupport实例的字符串表示形式。

      字符串表示形式包括此类的名称(即javax.management.openmbean.TabularDataSupport)、此实例的表类型的字符串表示形式,以及内容的字符串表示形式(即列出键=值映射,如通过调用dataMap.toString()返回的)。

      指定者:
      toString 在接口 TabularData
      覆盖:
      toString 在类 Object
      返回:
      TabularDataSupport实例的字符串表示形式