public class SizeSequence extends Object
SizeSequence
对象有效地保持尺寸和相应位置的有序列表。一种情况,
SizeSequence
可能是适当的在一个组件的显示大小不等的多个行。在这种情况下,一个单一的
SizeSequence
对象可用于轨道高度和所有行Y的位置。
另一个例子是一个多柱构件,如JTable
,其中列的大小并不都是平等的。可以使用一个单一的JTable
SizeSequence
对象来存储宽度和X位置的所有列。的JTable
可以利用SizeSequence
对象对应于一个特定的位置找到柱。的JTable
可以更新SizeSequence
对象当一个或多个列的大小改变。
下面的数据显示了多列组件的大小和位置数据之间的关系。
在图中,第一个索引(0)对应于第一列,第二个索引(1)到第二列,等等。第一列的位置0开始,与纵队size0像素,在size0是返回的值getSize(0)
。因此,第一列结束在size0 - 1。第二列开始的位置size0占地大小(像素getSize(1)
)。
请注意,SizeSequence
对象仅是沿轴线的间隔。在我们的例子中,间隔代表的高度或宽度的像素。然而,任何其他单位的措施(例如,时间在天)可能是有效的。
getIndex(position)
和
setSize(index, size)
。无论选择的内部格式是由这些操作中的一个是昂贵的条目的数量变大时。如果尺寸存储,找到入口,围绕一个特定位置的指标是线性项的数量。如果位置存储相反,在一个特定的索引处设置一个条目的大小,需要更新受影响的条目的位置,这也是一个线性计算。
像上面的技术,这个类拥有一个内部的n个整数数组,但使用一个混合编码,这是介于大小为基础的和基于位置的方法。其结果是一个数据结构,需要相同的空间来存储信息,但可以执行大多数操作日志(n)的时间,而不是O(n),其中n是列表中的条目的数目。
两种操作仍然是O(N)在参赛人数是insertEntries
和removeEntries
方法,都是通过将内部阵列的一组整数的大小来实现的,它复制到新数组,然后改革到位的混合表示。
Constructor and Description |
---|
SizeSequence()
创建一个新的
SizeSequence 对象不包含条目。
|
SizeSequence(int numEntries)
创建一个新的
SizeSequence 对象包含指定数量的条目,所有的初始化有大小0。
|
SizeSequence(int[] sizes)
创建一个新的
SizeSequence 对象包含指定的大小。
|
SizeSequence(int numEntries, int value)
创建一个新的
SizeSequence 对象包含指定数量的条目,都有大小
value 初始化。
|
Modifier and Type | Method and Description |
---|---|
int |
getIndex(int position)
返回对应于指定位置的条目的索引。
|
int |
getPosition(int index)
返回指定项的起始位置。
|
int |
getSize(int index)
返回指定的条目的大小。
|
int[] |
getSizes()
返回所有条目的大小。
|
void |
insertEntries(int start, int length, int value)
增加了一组连续的条目,这
SizeSequence 。
|
void |
removeEntries(int start, int length)
从这个
SizeSequence 删除一组连续的条目。
|
void |
setSize(int index, int size)
设置指定的条目的大小。
|
void |
setSizes(int[] sizes)
这
SizeSequence 重置对象,使用在
sizes 参数数据。
|
public SizeSequence()
SizeSequence
对象不包含条目。添加条目,您可以使用
insertEntries
或
setSizes
。
public SizeSequence(int numEntries)
SizeSequence
对象包含指定数量的条目,所有的初始化有大小0。
numEntries
-尺寸号码追踪
numEntries < 0
NegativeArraySizeException
public SizeSequence(int numEntries, int value)
SizeSequence
对象包含指定数量的条目,都有大小
value
初始化。
numEntries
-尺寸号码追踪
value
-各尺寸的初始值
public SizeSequence(int[] sizes)
SizeSequence
对象包含指定的大小。
sizes
-尺寸被包含在
SizeSequence
阵列
public void setSizes(int[] sizes)
SizeSequence
重置对象,使用在
sizes
参数数据。该方法重新初始化该对象,它包含了许多作品的
sizes
阵列。每个条目的大小被初始化为相应项目在
sizes
价值。
sizes
-尺寸被包含在这
SizeSequence
阵列
public int[] getSizes()
public int getPosition(int index)
getPosition(0)
返回0,
getPosition(1)
等于
getSize(0)
,
getPosition(2)
等于
getSize(0)
+
getSize(1)
,等等。
注意,如果index
大于length
返回的值可能是没有意义的。
index
-入口的位置是理想的指标
public int getIndex(int position)
getIndex(0)
是0,从第一项开始总是在位置0。
position
-入口的位置
public int getSize(int index)
index
超出范围
(0 <= index < getSizes().length)
行为是未定义的。
index
-条目对应的索引
public void setSize(int index, int size)
index
值不落在范围:
(0 <= index < getSizes().length)
行为是未定义的。
index
-条目对应的索引
size
-入口的大小
public void insertEntries(int start, int length, int value)
SizeSequence
。注意,
start
和
length
值必须满足以下条件:
(0 <= start < getSizes().length) AND (length >= 0)
。如果没有满足这些条件,则该行为是未指定的,并可能引发异常。
start
-被指定组中的第一项的索引
length
在组参赛人数
value
的大小被分配到每个新条目
ArrayIndexOutOfBoundsException
如果参数的范围之外:(
0 <= start < (getSizes().length)) AND (length >= 0)
public void removeEntries(int start, int length)
SizeSequence
删除一组连续的条目。注意,
start
和
length
值必须满足以下条件:
(0 <= start < getSizes().length) AND (length >= 0)
。如果这些条件不满足,行为是不可能会抛出一个异常。
start
-第一个条目被删除索引
length
-参赛人数被删除
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.