java.lang.Object
javax.print.attribute.SetOfIntegerSyntax
- 所有已实现的接口:
-
Serializable
,Cloneable
- 直接已知的子类:
-
CopiesSupported
,JobImpressionsSupported
,JobKOctetsSupported
,JobMediaSheetsSupported
,NumberUpSupported
,PageRanges
类
SetOfIntegerSyntax
是一个抽象基类,提供值为非负整数集的所有属性的通用实现。这包括值为单个整数范围的属性和值为整数范围集的属性。
您可以通过以"字符串形式"给出来构造SetOfIntegerSyntax
的实例。字符串由零个或多个逗号分隔的整数组成。每个整数组由一个整数、两个由连字符(-
)分隔的整数或两个由冒号(:
)分隔的整数组成。每个整数由一个或多个十进制数字(0
到9
)组成。整数内部不能包含空格字符,但会被忽略。例如:""
、"1"
、"5-10"
、"1:2, 4"
。
您也可以通过以"数组形式"给出来构造SetOfIntegerSyntax
的实例。数组形式由零个或多个整数组成,其中每个整数组是一个长度为1或长度为2的int
数组;例如,int[0][]
、int[][]{{1}}
、int[][]{{5,10}}
、int[][]{{1,2},{4}}
。
在字符串形式和数组形式中,每个连续的整数组表示要包含在集合中的整数范围。每个组中的第一个整数表示范围的下限;每个组中的第二个整数表示范围的上限;如果组中只有一个整数,则上限与下限相同。如果上限小于下限,则表示一个null
范围(无值)。如果上限等于下限,则表示一个由单个值组成的范围。如果上限大于下限,则表示由多个值组成的范围。范围可以以任何顺序出现,并且允许重叠。所有范围的并集给出了集合的内容。一旦构造了SetOfIntegerSyntax
实例,其值就是不可变的。
SetOfIntegerSyntax
对象的值实际上存储在"规范数组形式"中。这与数组形式相同,只是没有null
范围;集合的成员以尽可能少的范围表示(即,重叠的范围被合并);范围按升序排列;每个范围始终以int
数组的长度为2的形式{下限,上限}表示。空集表示为零长度数组。
类SetOfIntegerSyntax
具有操作,以规范数组形式返回集合的成员,测试给定整数是否是集合的成员,并遍历集合的成员。
- 参见:
-
Constructor Summary
ModifierConstructorDescriptionprotected
SetOfIntegerSyntax
(int member) 构造一个包含单个整数的整数集属性。protected
SetOfIntegerSyntax
(int[][] members) 用数组形式构造一个包含给定成员的新整数集属性。protected
SetOfIntegerSyntax
(int lowerBound, int upperBound) 构造一个包含单个整数范围的新整数集属性。protected
SetOfIntegerSyntax
(String members) 用字符串形式构造一个包含给定成员的新整数集属性。 -
Method Summary
-
Constructor Details
-
SetOfIntegerSyntax
用字符串形式构造一个包含给定成员的新整数集属性。- 参数:
-
members
- 以字符串形式表示的集合成员。如果为null
,则构造一个空集。 - 抛出:
-
IllegalArgumentException
- 如果members
不符合正确的语法
-
SetOfIntegerSyntax
protected SetOfIntegerSyntax(int[][] members) 用数组形式构造一个包含给定成员的新整数集属性。- 参数:
-
members
- 以数组形式表示的集合成员。如果为null
,则构造一个空集。 - 抛出:
-
NullPointerException
- 如果members
的任何元素为null
-
IllegalArgumentException
- 如果members
的任何元素不是长度为一或长度为二的数组,或者members
中的任何非null
范围的下限小于零
-
SetOfIntegerSyntax
protected SetOfIntegerSyntax(int member) 构造一个包含单个整数的新整数集属性。- 参数:
-
member
- 集合成员 - 抛出:
-
IllegalArgumentException
- 如果member
为负数
-
SetOfIntegerSyntax
protected SetOfIntegerSyntax(int lowerBound, int upperBound) 构造一个包含单个整数范围的新整数集属性。如果下限大于上限(空范围),则构造一个空集。- 参数:
-
lowerBound
- 范围的下限 -
upperBound
- 范围的上限 - 抛出:
-
IllegalArgumentException
- 如果范围为非null
且lowerBound
小于零
-
-
Method Details
-
getMembers
public int[][] getMembers()获取此整数集属性的规范数组形式的成员。返回的数组是"安全的";客户端可以更改它而不会影响此整数集属性。- 返回:
- 此整数集属性的规范数组形式的成员
-
contains
public boolean contains(int x) 确定此整数集属性是否包含给定值。- 参数:
-
x
- 整数值 - 返回:
-
如果此整数集属性包含值
x
,则返回true
,否则返回false
-
contains
确定此整数集属性是否包含给定整数属性的值。- 参数:
-
attribute
- 整数属性 - 返回:
-
如果此整数集属性包含
attribute
的值,则返回true
,否则返回false
-
next
public int next(int x) 确定此整数集属性中大于给定值的最小整数。如果此整数集属性中没有大于给定值的整数,则返回-1
。(由于整数集属性只能包含非负值,因此-1
永远不会出现在集合中。)您可以使用next()
方法按升序遍历整数集属性中的整数值,如下所示:SetOfIntegerSyntax attribute = . . .; int i = -1; while ((i = attribute.next (i)) != -1) { foo (i); }
- 参数:
-
x
- 整数值 - 返回:
-
此整数集属性中大于
x
的最小整数,如果此整数集属性中没有大于x
的整数,则返回-1
。
-
equals
返回此整数集属性是否等效于传入的对象。要等效,必须满足以下所有条件:object
不为null
。object
是SetOfIntegerSyntax
类的实例。- 此整数集属性的成员和
object
的成员相同。
-
hashCode
public int hashCode()返回此整数集属性的哈希码值。哈希码是规范数组形式中范围的下限和上限之和,或空集的情况下为0。 -
toString
返回与此整数集属性对应的字符串值。如果此集合为空,则字符串值为零长度字符串。否则,字符串值是以规范数组形式的逗号分隔范围列表,其中每个范围表示为"i"
,如果下限等于上限,否则表示为"i-j"
。
-