- java.lang.Object
-
- javax.management.openmbean.TabularDataSupport
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
,Map<Object,Object>
,TabularData
public class TabularDataSupport extends Object implements TabularData, Map<Object,Object>, Cloneable, Serializable
TabularDataSupport
类是 开放数据类,它实现了TabularData
和Map
接口,内部基于哈希映射数据结构。- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 TabularDataSupport(TabularType tabularType)
创建一个空的TabularDataSupport
实例,其开放类型为 tabularType ,其底层HashMap
具有默认初始容量(101)和默认负载因子(0.75)。TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)
创建一个空的TabularDataSupport
实例,其open-type是 tabularType ,其底层HashMap
具有指定的初始容量和负载因子。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Object[]
calculateIndex(CompositeData value)
计算此TabularData
实例中将使用的索引,以引用指定的复合数据 值参数(如果已添加到此实例)。void
clear()
从此TabularDataSupport
实例中删除所有行。Object
clone()
返回此TabularDataSupport
实例的克隆:通过调用super.clone()
获取克隆,然后克隆底层地图。boolean
containsKey(Object key)
返回true
当且仅当此TabularData
实例包含索引为指定 键的CompositeData
值(即一行)时。boolean
containsKey(Object[] key)
返回true
当且仅当此TabularData
实例包含索引为指定 键的CompositeData
值(即一行)时。boolean
containsValue(Object value)
当且仅当此TabularData
实例包含指定值时,返回true
。boolean
containsValue(CompositeData value)
当且仅当此TabularData
实例包含指定的CompositeData
值时,返回true
。Set<Map.Entry<Object,Object>>
entrySet()
返回此TabularDataSupport
实例中包含的行映射的索引的集合视图。boolean
equals(Object obj)
将指定的 obj参数与此TabularDataSupport
实例进行比较以实现相等。Object
get(Object key)
这个方法只需拨打get((Object[]) key)
。CompositeData
get(Object[] key)
在此TabularData
实例中,如果没有值映射到 键 ,则返回其索引为 key的CompositeData
值,或null
。TabularType
getTabularType()
返回描述此TabularData
实例的 表格类型 。int
hashCode()
返回此TabularDataSupport
实例的哈希码值。boolean
isEmpty()
如果此TabularDataSupport
实例不包含任何行,则返回true
。Set<Object>
keySet()
返回此TabularDataSupport
实例的基础映射中包含的键的集合视图,用于对行进行索引。Object
put(Object key, Object value)
该方法简单地调用put((CompositeData) value)
,因此忽略其 关键参数,可以是null
。void
put(CompositeData value)
将 值添加到此TabularData
实例。void
putAll(Map<?,?> t)
将指定映射 t中包含的所有值添加到此TabularData
实例。void
putAll(CompositeData[] values)
将 值中的所有元素添加到此TabularData
实例中。Object
remove(Object key)
这个方法只需调用remove((Object[]) key)
。CompositeData
remove(Object[] key)
从TabularData
实例中删除索引为 key的CompositeData
值,并返回已删除的值,如果没有索引为 key的值,则返回null
。int
size()
返回此TabularDataSupport
实例中的行数。String
toString()
返回此TabularDataSupport
实例的字符串表示形式。Collection<Object>
values()
返回此TabularDataSupport
实例中包含的行的集合视图。-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, entry, forEach, getOrDefault, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
构造方法详细信息
-
TabularDataSupport
public TabularDataSupport(TabularType tabularType)
创建一个空的TabularDataSupport
实例,其open-type是tabularType ,底层的HashMap
具有默认初始容量(101)和默认负载因子(0.75)。这个构造函数只需调用
this(tabularType, 101, 0.75f);
- 参数
-
tabularType
- 描述这个TabularData
实例的表格类型 ; 不能为空。 - 异常
-
IllegalArgumentException
- 如果表格类型为空。
-
TabularDataSupport
public TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)
创建一个空的TabularDataSupport
实例,其open-type是 tabularType ,底层的HashMap
具有指定的初始容量和负载因子。- 参数
-
tabularType
- 描述这个TabularData
实例的表格类型 ; 不能为空。 -
initialCapacity
- HashMap的初始容量。 -
loadFactor
- HashMap的负载因子 - 异常
-
IllegalArgumentException
- 如果初始容量小于零,或负载因子为非正性,或表格类型为空。
-
-
方法详细信息
-
getTabularType
public TabularType getTabularType()
返回描述此TabularData
实例的 表格类型 。- Specified by:
-
getTabularType
在接口TabularData
- 结果
- 表格类型。
-
calculateIndex
public Object[] calculateIndex(CompositeData value)
计算此TabularData
实例中使用的索引,以引用指定的复合数据值参数(如果已添加到此实例)。 此方法检查指定值的类型有效性,但不检查计算的索引是否已被用于引用此TabularData
实例中的值。- Specified by:
-
calculateIndex
在接口TabularData
- 参数
-
value
- 要计算此TabularData
实例中的索引的复合数据值; 必须与此实例的行类型具有相同的复合类型; 不能为空。 - 结果
-
指定的
值在这个
TabularData
实例中具有的索引。 - 异常
-
NullPointerException
- 如果 值为null
。 -
InvalidOpenTypeException
- 如果 值不符合此TabularData
实例的行类型定义。
-
containsKey
public boolean containsKey(Object key)
返回true
当且仅当此TabularData
实例包含索引为指定键的CompositeData
值(即一行)时。 如果键不能被转换为Object实例的一维数组,则此方法只返回false
; 否则会将调用结果返回给this.containsKey((Object[]) key)
。- Specified by:
-
containsKey
在接口Map<Object,Object>
- 参数
-
key
- 要测试此TabularData
实例中的索引值。 - 结果
-
true
如果这个TabularData
用指定的键索引行值。
-
containsKey
public boolean containsKey(Object[] key)
返回true
当且仅当该TabularData
实例包含索引为指定键的CompositeData
值(即一行)时。 如果键是null
或者不符合这个TabularData
实例的TabularType
定义,这个方法只需返回false
。- Specified by:
-
containsKey
在接口TabularData
- 参数
-
key
- 要测试其在此TabularData
实例中的索引值。 - 结果
-
true
如果这个TabularData
用指定的键索引行值。
-
containsValue
public boolean containsValue(CompositeData value)
如果且仅当此TabularData
实例包含指定的CompositeData
值时,则返回true
。 如果值为null
或不符合此TabularData
实例的行类型定义,则此方法只返回false
。- Specified by:
-
containsValue
在接口TabularData
- 参数
-
value
- 要测试此TabularData
实例中的行值。 - 结果
-
true
如果此TabularData
实例包含指定的行值。
-
containsValue
public boolean containsValue(Object value)
当且仅当此TabularData
实例包含指定值时,返回true
。- Specified by:
-
containsValue
在接口Map<Object,Object>
- 参数
-
value
- 要在此TabularData
实例中存在的行值要测试。 - 结果
-
true
如果此TabularData
实例包含指定的行值。
-
get
public Object get(Object key)
这个方法只需调用get((Object[]) key)
。- Specified by:
-
get
在接口Map<Object,Object>
- 参数
-
key
- 要返回其关联值的键 - 结果
-
指定键映射到的值,如果此映射不包含该键的映射,
null
- 异常
-
NullPointerException
- 如果 键是null
-
ClassCastException
- 如果 键不是类型Object[]
-
InvalidKeyException
- 如果 密钥不符合这个TabularData
实例的TabularType
定义
-
get
public CompositeData get(Object[] key)
返回CompositeData
值,其指数是 关键 ,或null
如果没有值映射到 按键 ,在此TabularData
实例。- Specified by:
-
get
在接口TabularData
- 参数
-
key
- 在这个TabularData
实例中获取的值的索引; 必须与此TabularData
实例的行类型定义一致; 不能为空。 - 结果
- 值对应的 键 。
- 异常
-
NullPointerException
- 如果 键是null
-
InvalidKeyException
- 如果 密钥不符合此TabularData
实例的TabularType
类型定义。
-
put
public Object put(Object key, Object value)
该方法简单地调用put((CompositeData) value)
,因此忽略其 关键参数,可以是null
。- Specified by:
-
put
在接口Map<Object,Object>
- 参数
-
key
- 忽略的参数。 -
value
- 要放CompositeData
。 - 结果
- 放置的价值
- 异常
-
NullPointerException
- 如果 值为null
-
ClassCastException
- 如果 值不是类型CompositeData
-
InvalidOpenTypeException
- 如果该 值不符合此TabularData
实例的TabularType
定义 -
KeyAlreadyExistsException
- 如果根据这个TabularData
实例的TabularType
定义计算的 值参数的键已经映射到现有值
-
put
public void put(CompositeData value)
描述从接口TabularData
复制将值添加到此TabularData
实例。 当复合型的值必须与此相同实例的行类型(即返回的复合型this.getTabularType().
),而且必须没有在这个现有值getRowType()
TabularData
实例,其指数是相同的值来计算的一个被添加。 值的索引根据TabularData
实例的TabularType
定义计算(见TabularType.
)。getIndexNames()
- Specified by:
-
put
在接口TabularData
- 参数
-
value
- 要添加到此TabularData
实例的新行的复合数据值; 必须与此实例的行类型具有相同的复合类型; 不能为空。
-
remove
public Object remove(Object key)
这个方法只需拨打remove((Object[]) key)
。- Specified by:
-
remove
在接口Map<Object,Object>
- 参数
-
key
- 一个Object[]
表示删除的关键。 - 结果
-
与指定键相关联的上一个值,如果没有键的映射,
null
。 - 异常
-
NullPointerException
- 如果 密钥是null
-
ClassCastException
- 如果 键不是类型Object[]
-
InvalidKeyException
- 如果 密钥不符合这个TabularData
实例的TabularType
定义
-
remove
public CompositeData remove(Object[] key)
从TabularData
实例中删除索引为 key的CompositeData
值,并返回已删除的值,如果没有索引为 key的值,则返回null
。- Specified by:
-
remove
在接口TabularData
- 参数
-
key
- 在这个TabularData
实例中获取的值的索引; 必须使用此TabularData
实例的行类型定义才有效; 不能为空。 - 结果
-
与指定键相关联的上一个值,如果没有键的映射,
null
。 - 异常
-
NullPointerException
- 如果 密钥是null
-
InvalidKeyException
- 如果 密钥不符合这个TabularData
实例的TabularType
定义
-
putAll
public void putAll(Map<?,?> t)
将指定映射t中包含的所有值添加到此TabularData
实例。 如果可能,此方法将包含在该映射中的值的集合转换为CompositeData
值的数组,然后调用方法putAll(CompositeData[])
。 请注意,在指定的映射t中使用的键将被忽略。 该方法允许例如将具有相同行类型(但可能不同的索引名称)的另一个TabularData
实例的内容添加到该实例中。- Specified by:
-
putAll
在接口Map<Object,Object>
- 参数
-
t
- 其值将作为新行添加到此TabularData
实例的TabularData
; 如果t为null
或为空,则此方法返回而不做任何事情。 - 异常
-
NullPointerException
- 如果 t中的值为null
。 -
ClassCastException
- 如果 t中的值不是CompositeData
的实例。 -
InvalidOpenTypeException
- 如果 t中的值不符合此TabularData
实例的行类型定义。 -
KeyAlreadyExistsException
- 如果根据此TabularData
实例的TabularType
定义计算的值 t的索引已经映射到此实例中的现有值,或 t中的两个值具有相同的索引。
-
putAll
public void putAll(CompositeData[] values)
将值中的所有元素添加到此TabularData
实例中。 如果值中的任何元素不满足put
中定义的约束,或者如果值中的任何两个元素具有根据此TabularData
实例的TabularType
定义计算的相同索引,则抛出描述失败的异常,并且不添加值元素,从而使这个TabularData
实例保持不变。- Specified by:
-
putAll
在接口TabularData
- 参数
-
values
- 要添加到此TabularData
实例的新行的复合数据值数组; 如果值为null
或为空,则此方法返回而不做任何操作。 - 异常
-
NullPointerException
- 如果 值的元素是null
-
InvalidOpenTypeException
- 如果 值的元素不符合此TabularData
实例的行类型定义(即其TabularType
定义) -
KeyAlreadyExistsException
- 如果根据此TabularData
实例的TabularType
定义计算的 值元素的索引已经映射到此实例中的现有值,或两个 值的元素具有相同的索引
-
clear
public void clear()
从此TabularDataSupport
实例中删除所有行。
-
size
public int size()
返回此TabularDataSupport
实例中的行数。
-
isEmpty
public boolean isEmpty()
如果此TabularDataSupport
实例不包含任何行,则返回true
。
-
keySet
public Set<Object> keySet()
返回用于对行进行索引的TabularDataSupport
实例的底层映射中包含的键的集合视图。 该Set
包含的每个密钥是不可修改的List<?>
因此返回的集合视图为Set<List<?>>
但由于兼容性原因被声明为Set<Object>
。 该集合由此TabularDataSupport
实例的底层映射支持,因此对该TabularDataSupport
的反映将更改为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
public Collection<Object> values()
返回此TabularDataSupport
实例中包含的行的集合视图。 由于兼容性原因,返回的Collection
是Collection<CompositeData>
但被声明为Collection<Object>
。 返回的集合可以用于迭代值。 集合由底层映射支持,因此对集合中的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>)
操作。
-
entrySet
public Set<Map.Entry<Object,Object>> entrySet()
返回此TabularDataSupport
实例中包含的行映射索引的集合视图。 返回的集合中的每个元素都是Map.Entry<List<?>,CompositeData>
但由于兼容性原因,它们被声明为Map.Entry<Object,Object>
。 每个地图条目键是一个不可修改的List<?>
。 该集合由该TabularDataSupport
实例的底层映射支持,因此对TabularDataSupport
实例的更改反映在集合中,反之亦然。 该collection支持元素移除,即从映射中相应的映射,经由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
public Object clone()
返回此TabularDataSupport
实例的克隆:通过调用super.clone()
获取克隆,然后克隆底层地图。 仅生成底层地图的浅克隆,即不进行索引和行值的克隆,因为它们是不可变的。
-
equals
public boolean equals(Object obj)
将指定的obj参数与此TabularDataSupport
实例进行比较以获得相等性。返回
true
当且仅当以下所有语句均为真时:- obj是非空,
- obj还实现了
TabularData
接口, - 它们的表格类型是相等的
- 它们的内容(即所有的CompositeData值)相等。
equals
方法适用于TabularData
接口的不同实现的对象参数。
- Specified by:
-
equals
在接口Map<Object,Object>
- Specified by:
-
equals
在接口TabularData
- 重写:
-
equals
在Object
- 参数
-
obj
- 要与TabularDataSupport
实例相等的对象; - 结果
-
true
如果指定的对象等于这个TabularDataSupport
实例。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此TabularDataSupport
实例的哈希码值。TabularDataSupport
实例的哈希码是equals
比较中使用的所有信息元素的哈希码的总和(即:其表格类型及其内容,其中内容定义为所有CompositeData值)。这确保了
t1.equals(t2)
意味着t1.hashCode()==t2.hashCode()
对于任何两个TabularDataSupport
实例t1
和t2
,所要求的方法的常规合同Object.hashCode()
。但是,请注意,实现
TabularData
接口的类的另一个实例可能等于TabularDataSupport
定义的27075445643443实例,但如果其计算方式不同,则可能具有不同的哈希码。- Specified by:
-
hashCode
在接口Map<Object,Object>
- Specified by:
-
hashCode
在接口TabularData
- 重写:
-
hashCode
在Object
- 结果
-
这个
TabularDataSupport
实例的哈希码值 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
返回此TabularDataSupport
实例的字符串表示形式。字符串表示由该类的名称(即
javax.management.openmbean.TabularDataSupport
),此实例的表格类型的字符串表示形式和内容的字符串表示形式(即列出由调用dataMap.
toString()
返回的键=值映射) 。- Specified by:
-
toString
在接口TabularData
- 重写:
-
toString
在Object
- 结果
-
这个
TabularDataSupport
实例的字符串表示形式
-
-