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类是实现了TabularData和Map接口的开放数据类,内部基于哈希映射数据结构。
- 自从:
- 1.5
- 参见:
-
Nested Class Summary
-
Constructor Summary
ConstructorsConstructorDescriptionTabularDataSupport(TabularType tabularType) 创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有默认的初始容量(101)和默认的加载因子(0.75)。TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor) 创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有指定的初始容量和加载因子。 -
Method Summary
Modifier and TypeMethodDescriptionObject[]calculateIndex(CompositeData value) 计算在此TabularData实例中将用于引用指定的复合数据value参数的索引,如果将其添加到此实例中。voidclear()从此TabularDataSupport实例中删除所有行。clone()返回此TabularDataSupport实例的克隆:克隆是通过调用super.clone()获得的,然后克隆底层映射。booleancontainsKey(Object key) 如果且仅当此TabularData实例包含索引为指定key的CompositeData值(即一行)时,返回true。booleancontainsKey(Object[] key) 如果且仅当此TabularData实例包含索引为指定key的CompositeData值(即一行)时,返回true。booleancontainsValue(Object value) 如果且仅当此TabularData实例包含指定值时,返回true。booleancontainsValue(CompositeData value) 如果且仅当此TabularData实例包含指定的CompositeData值时,返回true。entrySet()返回此TabularDataSupport实例中包含的索引到行映射的集合视图。boolean将指定的obj参数与此TabularDataSupport实例进行比较,以检查是否相等。此方法简单地调用get((Object[]) key)。返回此TabularData实例中索引为key的CompositeData值,如果没有映射到key的值,则返回null。返回描述此TabularData实例的表格类型。inthashCode()返回此TabularDataSupport实例的哈希码值。booleanisEmpty()如果此TabularDataSupport实例不包含任何行,则返回true。keySet()返回此TabularDataSupport实例的底层映射中包含的用于索引行的键的集合视图。此方法简单地调用put((CompositeData) value),因此忽略其可能为null的key参数。voidput(CompositeData value) 将value添加到此TabularData实例。void将指定映射t中包含的所有值添加到此TabularData实例中。voidputAll(CompositeData[] values) 将values中包含的所有元素添加到此TabularData实例中。此方法简单地调用remove((Object[]) key)。从此TabularData实例中删除索引为key的CompositeData值,并返回已删除的值,如果没有索引为key的值,则返回null。intsize()返回此TabularDataSupport实例中的行数。toString()返回此TabularDataSupport实例的字符串表示形式。values()返回此TabularDataSupport实例中包含的行的集合视图。Methods declared in interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
TabularDataSupport
创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有默认的初始容量(101)和默认的加载因子(0.75)。此构造函数简单地调用
this(tabularType, 101, 0.75f);- 参数:
-
tabularType- 描述此TabularData实例的表格类型;不能为空。 - 抛出:
-
IllegalArgumentException- 如果表格类型为null。
-
TabularDataSupport
创建一个空的TabularDataSupport实例,其开放类型为tabularType,底层的HashMap具有指定的初始容量和加载因子。- 参数:
-
tabularType- 描述此TabularData实例的表格类型;不能为空。 -
initialCapacity- HashMap的初始容量。 -
loadFactor- HashMap的加载因子。 - 抛出:
-
IllegalArgumentException- 如果初始容量小于零,加载因子为非正数,或表格类型为null。
-
-
Method Details
-
getTabularType
返回描述此TabularData实例的表格类型。- 指定者:
-
getTabularType在接口TabularData中 - 返回:
- 表格类型。
-
calculateIndex
计算在此TabularData实例中将用于引用指定的复合数据value参数的索引,如果将其添加到此实例中。此方法检查指定value的类型有效性,但不检查计算的索引是否已用于引用此TabularData实例中的值。- 指定者:
-
calculateIndex在接口TabularData中 - 参数:
-
value- 要计算其在此TabularData实例中的索引的复合数据值;必须与此实例的行类型相同的复合类型;不能为null。 - 返回:
-
指定value在此
TabularData实例中将具有的索引。 - 抛出:
-
NullPointerException- 如果value为null。 -
InvalidOpenTypeException- 如果value不符合此TabularData实例的行类型定义。
-
containsKey
如果且仅当此TabularData实例包含索引为指定key的CompositeData值(即一行)时,返回true。如果key无法转换为Object实例的一维数组,则此方法简单地返回false;否则返回调用this.containsKey((Object[]) key)的结果。- 指定者:
-
containsKey在接口Map<Object,中Object> - 参数:
-
key- 要测试其在此TabularData实例中存在性的索引值。 - 返回:
-
如果此
TabularData索引具有指定键的行值,则返回true。
-
containsKey
如果且仅当此TabularData实例包含索引为指定key的CompositeData值(即一行)时,返回true。如果key为null或不符合此TabularData实例的TabularType定义,则此方法简单地返回false。- 指定者:
-
containsKey在接口TabularData中 - 参数:
-
key- 要测试其在此TabularData实例中存在性的索引值。 - 返回:
-
如果此
TabularData索引具有指定键的行值,则返回true。
-
containsValue
如果且仅当此TabularData实例包含指定的CompositeData值时,返回true。如果value为null或不符合此TabularData实例的行类型定义,则此方法简单地返回false。- 指定者:
-
containsValue在接口TabularData中 - 参数:
-
value- 要在此TabularData实例中测试其存在的行值。 - 返回值:
-
如果此
TabularData实例包含指定的行值,则返回true。
-
containsValue
如果此TabularData实例包含指定的值,则返回true。- 指定者:
-
containsValue在接口Map<Object,中Object> - 参数:
-
value- 要在此TabularData实例中测试其存在的行值。 - 返回值:
-
如果此
TabularData实例包含指定的行值,则返回true。
-
get
此方法简单地调用get((Object[]) key)。- 指定者:
-
get在接口Map<Object,中Object> - 参数:
-
key- 要返回其关联值的键 - 返回值:
-
指定键映射到的值,如果此映射不包含键的映射关系,则返回
null - 抛出:
-
NullPointerException- 如果key为null -
ClassCastException- 如果key不是类型Object[] -
InvalidKeyException- 如果key不符合此TabularData实例的TabularType定义
-
get
返回索引为key的CompositeData值,如果没有映射到key的值,则返回null,在此TabularData实例中。- 指定者:
-
get在接口TabularData中 - 参数:
-
key- 要获取其值的索引在此TabularData实例中;必须符合此TabularData实例的行类型定义;不得为null。 - 返回值:
- 与key对应的值。
- 抛出:
-
NullPointerException- 如果key为null -
InvalidKeyException- 如果key不符合此TabularData实例的TabularType定义
-
put
此方法简单地调用put((CompositeData) value),因此忽略其key参数,该参数可以为null。- 指定者:
-
put在接口Map<Object,中Object> - 参数:
-
key- 一个被忽略的参数。 -
value- 要放入的CompositeData。 - 返回值:
- 被放入的值
- 抛出:
-
NullPointerException- 如果value为null -
ClassCastException- 如果value不是类型CompositeData -
InvalidOpenTypeException- 如果value不符合此TabularData实例的TabularType定义 -
KeyAlreadyExistsException- 如果根据此TabularData实例的TabularType定义,value参数的键已经映射到现有值
-
put
从接口复制的描述:TabularData将value添加到此TabularData实例。 value的复合类型必须与此实例的行类型相同(即由this.getTabularType().返回的复合类型),并且在此getRowType()TabularData实例中,索引与要添加的value计算出的索引相同的现有值不得存在。 value的索引是根据此TabularData实例的TabularType定义计算的(请参见TabularType.)。getIndexNames()- 指定者:
-
put在接口TabularData中 - 参数:
-
value- 要作为新行添加到此TabularData实例的复合数据值;必须与此实例的行类型的复合类型相同;不得为null。
-
remove
此方法简单地调用remove((Object[]) key)。- 指定者:
-
remove在接口Map<Object,中Object> - 参数:
-
key- 表示要移除的键的Object[]。 - 返回值:
-
与指定键关联的先前值,如果键没有映射,则返回
null。 - 抛出:
-
NullPointerException- 如果key为null -
ClassCastException- 如果key不是类型Object[] -
InvalidKeyException- 如果key不符合此TabularData实例的TabularType定义
-
remove
从此TabularData实例中移除索引为key的CompositeData值,并返回已移除的值,如果没有索引为key的值,则返回null。- 指定者:
-
remove在接口TabularData中 - 参数:
-
key- 要在此TabularData实例中获取其值的索引;必须符合此TabularData实例的行类型定义;不得为null。 - 返回值:
-
与指定键关联的先前值,如果键没有映射,则返回
null。 - 抛出:
-
NullPointerException- 如果key为null -
InvalidKeyException- 如果key不符合此TabularData实例的TabularType定义
-
putAll
将包含在指定映射t中的所有值添加到此TabularData实例中。 如果可能,此方法将此映射中包含的值的集合转换为CompositeData值数组,然后调用方法putAll(CompositeData[])。 请注意,指定映射t中使用的键将被忽略。 例如,此方法允许将另一个具有相同行类型(但可能具有不同索引名称)的TabularData实例的内容添加到此实例中。- 指定者:
-
putAll在接口Map<Object,中Object> - 参数:
-
t- 要将其值作为新行添加到此TabularData实例的映射;如果t为null或为空,则此方法返回而不执行任何操作。 - 抛出:
-
NullPointerException- 如果t中的值为null。 -
ClassCastException- 如果t中的值不是CompositeData的实例。 -
InvalidOpenTypeException- 如果t中的值不符合此TabularData实例的行类型定义。 -
KeyAlreadyExistsException- 如果根据此TabularData实例的TabularType定义计算的t中的值的索引已经映射到此实例中的现有值,或者t中的两个值具有相同的索引。
-
putAll
将values中的所有元素添加到此TabularData实例中。如果values中的任何元素不满足put中定义的约束,或者如果values中的任何两个元素根据此TabularData实例的TabularType定义计算的索引相同,则会抛出描述失败的异常,并且不会添加values的任何元素,从而使此TabularData实例保持不变。- 指定者:
-
putAll在接口TabularData中 - 参数:
-
values- 要作为新行添加到此TabularData实例的复合数据值数组;如果values为null或为空,则此方法返回而不执行任何操作。 - 抛出:
-
NullPointerException- 如果values的元素为null -
InvalidOpenTypeException- 如果values的元素不符合此TabularData实例的行类型定义(即其TabularType定义) -
KeyAlreadyExistsException- 如果根据此TabularData实例的TabularType定义计算的values的元素的索引已经映射到此实例中的现有值,或者values的两个元素具有相同的索引
-
clear
public void clear()从此TabularDataSupport实例中删除所有行。 -
size
public int size()返回此TabularDataSupport实例中的行数。 -
isEmpty
public boolean isEmpty()如果此TabularDataSupport实例不包含任何行,则返回true。 -
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>)操作。 -
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>)操作。 -
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实例中包含的索引到行映射。 -
clone
返回此TabularDataSupport实例的克隆:通过调用super.clone()获得克隆,然后克隆基础映射。仅对基础映射进行浅克隆,即不对索引和行值进行克隆,因为它们是不可变的。 -
equals
将指定的obj参数与此TabularDataSupport实例进行比较,以确定它们是否相等。仅当以下所有语句都为真时,返回
true:- obj不为null,
- obj还实现了
TabularData接口, - 它们的表类型相等,
- 它们的内容(即所有CompositeData值)相等。
TabularData接口的不同实现作为obj参数时,此equals方法能正常工作。
-
hashCode
public int hashCode()返回此TabularDataSupport实例的哈希码值。TabularDataSupport实例的哈希码是用于equals比较中使用的所有信息元素的哈希码之和(即:其表类型和其内容的哈希码,其中内容定义为所有CompositeData值)。这确保了对于任何两个
TabularDataSupport实例t1和t2,如果t1.equals(t2),则t1.hashCode()==t2.hashCode(),这是Object.hashCode()方法的一般契约所要求的。但是,请注意,实现
TabularData接口的另一个类的实例可能与此TabularDataSupport实例相等(由equals(java.lang.Object)定义),但如果计算方式不同,则可能具有不同的哈希码。 -
toString
返回此TabularDataSupport实例的字符串表示形式。字符串表示形式包括此类的名称(即
javax.management.openmbean.TabularDataSupport)、此实例的表类型的字符串表示形式,以及内容的字符串表示形式(即列出键=值映射,如通过调用dataMap.toString()返回的)。- 指定者:
-
toString在接口TabularData - 覆盖:
-
toString在类Object - 返回:
-
此
TabularDataSupport实例的字符串表示形式
-