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