public final class Long extends Number implements Comparable<Long>
Long
クラスは、プリミティブ型 long
の値をオブジェクトにラップします。Long
型のオブジェクトには、型が long
の単一フィールドが含まれます。
さらにこのクラスは、long
を String
に、String
を long
に変換する各種メソッドや、long
の処理時に役立つ定数およびメソッドも提供します。
実装にあたっての注意:「bit twiddling (ビット回転)」メソッド (highestOneBit
や numberOfTrailingZeros
など) の実装は、Henry S. Warren, Jr. 著『Hacker's Delight』(Addison Wesley, 2002) に基づいています。
修飾子と型 | フィールドと説明 |
---|---|
static long |
MAX_VALUE
long に設定可能な最大値 263-1 を保持する定数。 |
static long |
MIN_VALUE
long に設定可能な最小値 -263 を保持する定数。 |
static int |
SIZE
2 の補数バイナリ形式で
long 値を表すのに使用されるビット数。 |
static Class<Long> |
TYPE
プリミティブ型
long を表す Class インスタンス。 |
コンストラクタと説明 |
---|
Long(long value)
指定された
long 引数を表す、新しく割り当てられた Long オブジェクトを構築します。 |
Long(String s)
String パラメータで示される long 値を表す、新しく割り当てられた Long オブジェクトを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
static int |
bitCount(long i)
指定された
long 値の 2 の補数バイナリ表現での、1 のビットの数を返します。 |
byte |
byteValue()
この
Long の値を byte として返します。 |
static int |
compare(long x, long y)
2 つの
long 値を数値的に比較します。 |
int |
compareTo(Long anotherLong)
2 つの
Long オブジェクトを数値的に比較します。 |
static Long |
decode(String nm)
String を Long にデコードします。 |
double |
doubleValue()
この
Long の値を double として返します。 |
boolean |
equals(Object obj)
このオブジェクトを指定されたオブジェクトと比較します。
|
float |
floatValue()
この
Long の値を float として返します。 |
static Long |
getLong(String nm)
指定された名前のシステムプロパティーの
long 値を判定します。 |
static Long |
getLong(String nm, long val)
指定された名前のシステムプロパティーの
long 値を判定します。 |
static Long |
getLong(String nm, Long val)
指定された名前のシステムプロパティーの
long 値を返します。 |
int |
hashCode()
この
Long のハッシュコードを返します。 |
static long |
highestOneBit(long i)
指定された
long 値の最上位 (「もっとも左側」) の 1 のビットの位置に最大で 1 つの 1 のビットを持つ long 値を返します。 |
int |
intValue()
この
Long の値を int として返します。 |
long |
longValue()
この
Long の値を long 値として返します。 |
static long |
lowestOneBit(long i)
指定された
long 値の最下位 (「もっとも右側」) の 1 のビットの位置に最大で 1 つの 1 のビットを持つ long 値を返します。 |
static int |
numberOfLeadingZeros(long i)
指定された
long 値の 2 の補数バイナリ表現の最上位 (「もっとも左側」) の 1 のビットに先行するゼロのビットの数を返します。 |
static int |
numberOfTrailingZeros(long i)
指定された
long 値の 2 の補数バイナリ表現で最下位 (「もっとも右側」) の 1 ビットに続くゼロのビットの数を返します。 |
static long |
parseLong(String s)
文字列の引数を符号付き 10 進数
long として構文解析します。 |
static long |
parseLong(String s, int radix)
2 番目の引数に指定された基数をもとにして、文字列の引数を符号付き
long として構文解析します。 |
static long |
reverse(long i)
指定された
long 値の 2 の補数バイナリ表現でビットの順序を逆にして取得された値を返します。 |
static long |
reverseBytes(long i)
指定された
long 値の 2 の補数バイナリ表現でバイトの順序を逆にして取得された値を返します。 |
static long |
rotateLeft(long i, int distance)
指定された
long 値の 2 の補数バイナリ表現を指定したビット数だけ左に回転して取得された値を返します。 |
static long |
rotateRight(long i, int distance)
指定された
long 値の 2 の補数バイナリ表現を指定したビット数だけ右に回転して取得された値を返します。 |
short |
shortValue()
この
Long の値を short として返します。 |
static int |
signum(long i)
指定された
long 値の符号要素を返します。 |
static String |
toBinaryString(long i)
long 引数の文字列表現を、基数 2 の符号なし整数として返します。 |
static String |
toHexString(long i)
long 引数の文字列表現を、基数 16 の符号なし整数として返します。 |
static String |
toOctalString(long i)
long 引数の文字列表現を、基数 8 の符号なし整数として返します。 |
String |
toString()
この
long の値を表す String オブジェクトを返します。 |
static String |
toString(long i)
指定された
long を表す String オブジェクトを返します。 |
static String |
toString(long i, int radix)
2 番目の引数を基数として、1 番目の引数の文字列表現を返します。
|
static Long |
valueOf(long l)
指定された
long 値を表す Long インスタンスを返します。 |
static Long |
valueOf(String s)
指定された
String の値を保持する Long オブジェクトを返します。 |
static Long |
valueOf(String s, int radix)
2 番目の引数で指定された基数を使用した構文解析時に、指定された
String から抽出された値を保持する Long オブジェクトを返します。 |
public static final long MIN_VALUE
long
に設定可能な最小値 -263 を保持する定数。public static final long MAX_VALUE
long
に設定可能な最大値 263-1 を保持する定数。public static final int SIZE
long
値を表すのに使用されるビット数。public Long(long value)
long
引数を表す、新しく割り当てられた Long
オブジェクトを構築します。value
- Long
オブジェクトによって表される値。public Long(String s) throws NumberFormatException
String
パラメータで示される long
値を表す、新しく割り当てられた Long
オブジェクトを構築します。文字列は、基数 10 で parseLong
メソッドを使用するのと同じように long
値に変換されます。s
- Long
に変換する String
。NumberFormatException
- String
が解析可能な long
を含まない場合。parseLong(java.lang.String, int)
public static String toString(long i, int radix)
基数が Character.MIN_RADIX
よりも小さい場合、あるいは Character.MAX_RADIX
よりも大きい場合は、代わりに 10
を基数として使います。
1 番目の引数が負の数である場合、生成された文字列の 1 番目の要素はマイナス記号の ASCII 文字 '-'
('\u002d'
) になります。1 番目の引数が負の数でない場合、生成された文字列には符号が付きません。
生成された文字列の残りの文字は、1 番目の引数の絶対値を表します。絶対値がゼロである場合は、単一のゼロ文字 '0'
('\u0030'
) で表されます。それ以外の場合は、絶対値を表す文字の 1 番目の文字はゼロではありません。次の ASCII 文字を、数字の桁に使います。
0123456789abcdefghijklmnopqrstuvwxyz
これらは '\u0030'
- '\u0039'
および '\u0061'
- '\u007a'
です。radix
が N の場合、これらの文字の先頭から N 個が、示した順に基数 N の桁として使用されます。すなわち、16 進数 (基数は 16) に使われる桁の数字は 0123456789abcdef
となります。大文字を使いたい場合は、生成された文字列に対して String.toUpperCase()
メソッドを呼び出すことができます。
Long.toString(n, 16).toUpperCase()
i
- 文字列に変換する long
。radix
- 文字列表現で使用する基数。Character.MAX_RADIX
, Character.MIN_RADIX
public static String toHexString(long i)
long
引数の文字列表現を、基数 16 の符号なし整数として返します。
符号なし long
値は、引数が負の数の場合は、引数に 264 を加算した値になります。それ以外の場合は、引数に等しい値になります。この値は、16 進数表記 (基数 16) の ASCII 文字列による数字となります。前に 0
は付きません。符号なしの絶対値がゼロの場合は、単一のゼロ文字 '0'
('\u0030'
) で表されます。それ以外の場合は、符号なしの絶対値を表す文字の 1 文字目はゼロではありません。16 進数の桁には、次の文字を使います。
0123456789abcdef
これらは文字 '\u0030'
- '\u0039'
および '\u0061'
- '\u0066'
です。大文字を使いたい場合は、生成された文字列に対して String.toUpperCase()
メソッドを呼び出すことができます。
Long.toHexString(n).toUpperCase()
i
- 文字列に変換する long
。long
値の文字列表現。public static String toOctalString(long i)
long
引数の文字列表現を、基数 8 の符号なし整数として返します。
符号なし long
値は、引数が負の数の場合は、引数に 264 を加算した値になります。それ以外の場合は、引数に等しい値になります。この値は、8 進数 (基数 8) の ASCII 文字列に変換されます。前に 0
は付きません。
符号なしの絶対値がゼロである場合は、単一のゼロ文字 '0'
('\u0030'
) で表されます。それ以外の場合は、符号なしの絶対値を表す文字の 1 番目の文字はゼロではありません。次の ASCII 文字を、8 進数の桁に使います。
01234567
これらは文字 '\u0030'
- '\u0037'
です。i
- 文字列に変換する long
。long
値の文字列表現。public static String toBinaryString(long i)
long
引数の文字列表現を、基数 2 の符号なし整数として返します。
符号なし long
値は、引数が負の数の場合は、引数に 264 を加算した値になります。それ以外の場合は、引数に等しい値になります。この値は、2 進数表記 (基数 2) の ASCII 文字列による数字となります。前に 0
は付きません。符号なしの絶対値がゼロの場合は、単一のゼロ文字 '0'
('\u0030'
) で表されます。それ以外の場合は、符号なしの絶対値を表す文字の 1 文字目はゼロではありません。2 進数の桁には、文字 '0'
('\u0030'
) および '1'
('\u0031'
) が使用されます。
i
- 文字列に変換する long
。long
値の文字列表現。public static String toString(long i)
long
を表す String
オブジェクトを返します。引数は、符号付き 10 進数表現に変換されてから文字列として返されます。これは、引数および基数 10 を toString(long, int)
メソッドへの引数として指定した場合とまったく同じです。i
- 変換する long
。public static long parseLong(String s, int radix) throws NumberFormatException
long
として構文解析します。文字列内の文字はすべて、指定された基数の桁である必要があります (Character.digit(char, int)
から負でない値が返されるかどうかで判定)。ただし先頭の文字だけは、負の値を示す ASCII マイナス記号 '-'
('\u002D'
)、正の値を示す ASCII プラス記号 '+'
('\u002B'
) のいずれかであってもかまいません。結果として得られる long
値が返されます。
L
('\u004C'
) または l
('\u006C'
) を型指定子として文字列の末尾に付けることは、Java プログラム言語のソースコードの場合とは違って許されません。ただし、基数が 22 よりも大きい桁の数字には、L
または l
が現われます。
以下に挙げる状況のどれかが発生した場合に、NumberFormatException
型の例外がスローされます。
null
であるか、長さゼロの文字列である。
radix
が Character.MIN_RADIX
よりも小さいか、Character.MAX_RADIX
よりも大きい。
'-'
('\u002d'
) またはプラス記号 '+'
('\u002B'
) であってもかまわない。
long
型の値ではない。
例
parseLong("0", 10) returns 0L parseLong("473", 10) returns 473L parseLong("+42", 10) returns 42L parseLong("-0", 10) returns 0L parseLong("-FF", 16) returns -255L parseLong("1100110", 2) returns 102L parseLong("99", 8) throws a NumberFormatException parseLong("Hazelnut", 10) throws a NumberFormatException parseLong("Hazelnut", 36) returns 1356099454469L
s
- 解析対象の long
表現を含む String
。radix
- s
の構文解析時に使用する基数。long
値。NumberFormatException
- 文字列が解析可能な long
を含まない場合。public static long parseLong(String s) throws NumberFormatException
long
として構文解析します。文字列内の文字はすべて、10 進数の桁である必要がありますが、先頭の文字だけは、負の値を示す ASCII マイナス記号 '-'
(\u002D'
)、正の値を示す ASCII プラス記号 '+'
('\u002B'
) のいずれであってもかまいません。結果として得られる long
値が返されます。これは、この引数と基数 10
が parseLong(java.lang.String, int)
メソッドに引数として指定された場合とまったく同じです。
L
('\u004C'
) または l
('\u006C'
) を型指定子として文字列の末尾に付けることは、Java プログラムのソースコードの場合とは違って許されません。
s
- 解析対象の long
表現を含む String
long
。NumberFormatException
- 文字列が解析可能な long
を含まない場合。public static Long valueOf(String s, int radix) throws NumberFormatException
String
から抽出された値を保持する Long
オブジェクトを返します。最初の引数は、2 番目の引数で指定された基数内の符号付き long
として解釈されます。これは、引数が parseLong(java.lang.String, int)
メソッドに渡された場合とまったく同じです。結果は、文字列により指定された long
値を表す Long
オブジェクトになります。
つまり、このメソッドが返す Long
オブジェクトの値は、次の値に等しくなります。
new Long(Long.parseLong(s, radix))
s
- 解析される文字列radix
- 次を解釈するときに使用される基数: s
Long
オブジェクト。NumberFormatException
- String
が解析可能な long
を含まない場合。public static Long valueOf(String s) throws NumberFormatException
String
の値を保持する Long
オブジェクトを返します。引数は、符号付き 10 進数 long
として解釈されます。これは、parseLong(java.lang.String)
メソッドに引数が指定された場合とまったく同じです。生成された結果は、文字列により指定された整数値を表す Long
オブジェクトになります。
つまり、このメソッドが返す Long
オブジェクトの値は、次の値に等しくなります。
new Long(Long.parseLong(s))
s
- 解析される文字列。Long
オブジェクト。NumberFormatException
- 文字列を long
として構文解析できない場合。public static Long valueOf(long l)
long
値を表す Long
インスタンスを返します。新規 Long
インスタンスが不要な場合、通常このメソッドがコンストラクタ Long(long)
に優先して使用されます。その理由は、このメソッドが頻繁に要求される値をキャッシュするので、操作に必要な領域や時間がはるかに少なくて済む場合が多いためです。
このメソッドは Integer
クラスの対応するメソッドと違い、特定範囲内の値をキャッシュに入れる必要がありません。l
- long 値。l
を表す Long
インスタンス。public static Long decode(String nm) throws NumberFormatException
String
を Long
にデコードします。次の文法の 10 進数、16 進数、および 8 進数を指定できます。
DecimalNumeral、HexDigits、および OctalDigits は、『Java™ 言語仕様』のセクション 3.10.1 で規定されているとおりですが、桁間のアンダースコアが受け入れられない点は規定と異なります。
- DecodableString:
- Signopt DecimalNumeral
- Signopt
0x
HexDigits- Signopt
0X
HexDigits- Signopt
#
HexDigits- Signopt
0
OctalDigits
- Sign:
-
+
オプションの符号と基数指示子のどちらかまたはその両方に続く文字シーケンス (「0x
」、「0X
」、「#
」、または先頭のゼロ) は、指定された基数 (10、16、または 8) で Long.parseLong
メソッドを使う場合と同じように構文解析されます。この文字シーケンスは正の数でなければならず、そうでない場合は NumberFormatException
がスローされます。指定された String
の最初の文字が負の符号である場合、生成された結果は否定されます。String
に空白文字を指定することはできません。
nm
- デコードする String
。nm
により表される long
値を保持する Long
オブジェクトNumberFormatException
- String
が解析可能な long
を含まない場合。parseLong(String, int)
public byte byteValue()
Long
の値を byte
として返します。public short shortValue()
Long
の値を short
として返します。shortValue
、クラス: Number
short
型に変換した値。public int intValue()
Long
の値を int
として返します。public long longValue()
Long
の値を long
値として返します。public float floatValue()
Long
の値を float
として返します。floatValue
、クラス: Number
float
型に変換した値。public double doubleValue()
Long
の値を double
として返します。doubleValue
、クラス: Number
double
型に変換した値。public String toString()
Long
の値を表す String
オブジェクトを返します。値は、符号付きの 10 進数表現に変換され、文字列として返されます。long
値が toString(long)
メソッドの引数として指定された場合とまったく同じです。public int hashCode()
Long
のハッシュコードを返します。生成された結果は、この Long
オブジェクトが保持するプリミティブ long
値の上位 32 ビットと下位 32 ビットの排他的論理和です。すなわち、ハッシュコードは次の式の値になります。
(int)(this.longValue()^(this.longValue()>>>32))
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
true
になるのは、引数が null
ではなく、このオブジェクトと同じ long
値を含む Long
オブジェクトである場合だけです。equals
、クラス: Object
obj
- 比較対象のオブジェクト。true
、そうでない場合は false
。Object.hashCode()
、HashMap
public static Long getLong(String nm)
long
値を判定します。
1 番目の引数は、システムプロパティーの名前として扱われます。システムプロパティーには System.getProperty(java.lang.String)
メソッド経由でアクセスできます。次にこのプロパティーの文字列値が long
値として扱われ、この値を表す Long
オブジェクトが返されます。可能な数値形式については、getProperty
の定義を参照してください。
指定された名前を持つプロパティーがない場合、指定された名前が空白または null
の場合、あるいはプロパティーが適切な数値形式でない場合は、null
が返されます。
つまり、このメソッドが返す Long
オブジェクトの値は、次の値に等しくなります。
getLong(nm, null)
nm
- プロパティー名。Long
値。System.getProperty(java.lang.String)
, System.getProperty(java.lang.String, java.lang.String)
public static Long getLong(String nm, long val)
long
値を判定します。
1 番目の引数は、システムプロパティーの名前として扱われます。システムプロパティーには System.getProperty(java.lang.String)
メソッド経由でアクセスできます。次にこのプロパティーの文字列値が long
値として扱われ、この値を表す Long
オブジェクトが返されます。可能な数値形式については、getProperty
の定義を参照してください。
2 番目の引数はデフォルトの値です。指定された名前のプロパティーがない場合、該当するプロパティーが適切な数値形式でない場合、あるいは指定した名前が空白または null の場合は、Long
オブジェクトが示す 2 番目の引数が返されます。
つまり、このメソッドが返す Long
オブジェクトの値は、次の値に等しくなります。
getLong(nm, new Long(val))
しかし実際には、次のように実装されます。
この実装により、デフォルトの値が不要な場合に、Long result = getLong(nm, null); return (result == null) ? new Long(val) : result;
Long
オブジェクトの余計な割り当てを避けることができます。nm
- プロパティー名。val
- デフォルト値。Long
値。System.getProperty(java.lang.String)
, System.getProperty(java.lang.String, java.lang.String)
public static Long getLong(String nm, Long val)
long
値を返します。1 番目の引数は、システムプロパティーの名前として扱われます。システムプロパティーには System.getProperty(java.lang.String)
メソッド経由でアクセスできます。次にこのプロパティーの文字列値が Long.decode
メソッドの場合と同じように long
値として扱われ、この値を表す Long
オブジェクトが返されます。
0x
または ASCII 文字 #
で始まり、その後にマイナス符号がない場合は、値の残りはメソッド valueOf(java.lang.String, int)
を基数 16 で使う場合とまったく同じように 16 進整数として解析される。
0
で始まり、それに別の文字が続く場合、値は valueOf(java.lang.String, int)
メソッドを基数 8 で使う場合とまったく同じように 8 進整数として解析される。
valueOf(java.lang.String, int)
メソッドを基数 10 で使う場合とまったく同じように 10 進整数として構文解析される。
以上のどの場合でも、型指定子として L
('\u004C'
) または l
('\u006C'
) をプロパティー値の末尾に付けることは、Java プログラム言語のソースコードの場合とは異なり許可されません。
2 番目の引数はデフォルトの値です。指定された名前のプロパティーがない場合、該当するプロパティーが適切な数値形式でない場合、あるいは指定した名前が空白または null
の場合は、デフォルト値が返されます。
nm
- プロパティー名。val
- デフォルト値。Long
値。System.getProperty(java.lang.String)
, System.getProperty(java.lang.String, java.lang.String)
, decode(java.lang.String)
public int compareTo(Long anotherLong)
Long
オブジェクトを数値的に比較します。compareTo
、インタフェース: Comparable<Long>
anotherLong
- 比較対象の Long
。Long
が引数 Long
と等しい場合は値 0
、この Long
が引数 Long
より小さい数値の場合は 0
より小さい値、この Long
が引数 Long
より大きい数値の場合は 0
より大きい値 (符号付きの比較)。public static int compare(long x, long y)
long
値を数値的に比較します。返される値は、次から返される値と同じになります。
Long.valueOf(x).compareTo(Long.valueOf(y))
x
- 比較する最初の long
y
- 比較する 2 番目の long
x == y
の場合は値 0
、x < y
の場合は 0
より小さい値、x > y
の場合は 0
より大きい値public static long highestOneBit(long i)
long
値の最上位 (「もっとも左側」) の 1 のビットの位置に最大で 1 つの 1 のビットを持つ long
値を返します。指定された値が 2 の補数バイナリ表現の 1 のビットを持たない場合、つまりゼロに等しい場合はゼロを返します。long
値。指定された値がゼロに等しい場合はゼロ。public static long lowestOneBit(long i)
long
値の最下位 (「もっとも右側」) の 1 のビットの位置に最大で 1 つの 1 のビットを持つ long
値を返します。指定された値が 2 の補数バイナリ表現の 1 のビットを持たない場合、つまりゼロに等しい場合はゼロを返します。long
値。指定された値がゼロに等しい場合はゼロ。public static int numberOfLeadingZeros(long i)
long
値の 2 の補数バイナリ表現の最上位 (「もっとも左側」) の 1 のビットに先行するゼロのビットの数を返します。指定された値が 2 の補数表現の 1 のビットを持たない場合、つまりゼロに等しい場合は 64 を返します。
このメソッドは、2 を底とする対数に密接に関係しています。すべての正の long
値 x の場合、
63 - numberOfLeadingZeros(x)
64 - numberOfLeadingZeros(x - 1)
long
値の 2 の補数バイナリ表現で最上位 (「もっとも左側」) の 1 のビットに先行するゼロのビットの数。指定された値がゼロに等しい場合は 64。public static int numberOfTrailingZeros(long i)
long
値の 2 の補数バイナリ表現で最下位 (「もっとも右側」) の 1 ビットに続くゼロのビットの数を返します。指定された値が 2 の補数表現の 1 のビットを持たない場合、つまりゼロに等しい場合は 64 を返します。long
値の 2 の補数バイナリ表現で最下位 (「もっとも右側」) の 1 ビットに続くゼロのビットの数。指定された値がゼロに等しい場合は 64。public static int bitCount(long i)
long
値の 2 の補数バイナリ表現での、1 のビットの数を返します。この関数は、ポピュレーションカウントと呼ばれる場合があります。long
値の 2 の補数バイナリ表現での、1 のビットの数。public static long rotateLeft(long i, int distance)
long
値の 2 の補数バイナリ表現を指定したビット数だけ左に回転して取得された値を返します。ビットは、左側つまり上位にシフトされ、右側つまり下位に入ります。
負の距離による左回転は、右回転と等価です(rotateLeft(val, -distance) == rotateRight(val, distance)
)。また、64 の倍数による回転は何もしません。つまり、回転距離の最後の 6 ビット以外は、距離が負の場合でもすべて無視できます。 rotateLeft(val, distance) == rotateLeft(val, distance & 0x3F)
.
long
値の 2 の補数バイナリ表現を指定されたビット数だけ左に回転して取得した値。public static long rotateRight(long i, int distance)
long
値の 2 の補数バイナリ表現を指定したビット数だけ右に回転して取得された値を返します。ビットは、右側つまり下位にシフトされ、左側つまり上位に入ります。
負の距離による右回転は、左回転と等価です (rotateRight(val, -distance) == rotateLeft(val, distance)
)。また、64 の倍数による回転は何もしません。つまり、回転距離の最後の 6 ビット以外は、距離が負の場合でもすべて無視できます (rotateRight(val, distance) == rotateRight(val, distance & 0x3F)
)。
long
値の 2 の補数バイナリ表現を指定されたビット数だけ右に回転して取得された値。public static long reverse(long i)
long
値の 2 の補数バイナリ表現でビットの順序を逆にして取得された値を返します。long
値でバイト順を逆にして取得された値。public static int signum(long i)
long
値の符号要素を返します。(指定した値が負の場合、戻り値は -1。指定された値がゼロの場合は 0。指定した値が正の場合は 1)。long
値の符号要素。public static long reverseBytes(long i)
long
値の 2 の補数バイナリ表現でバイトの順序を逆にして取得された値を返します。long
値のバイト順を逆にして取得された値。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.