common-langパッケージの分析(11.30更新)
自分でコードを見る能力を鍛えるためにも、優れたコードを学ぶためにも、今日からよく使われるクラスの使い方を書きます.
今日の主役はcommons-langバッグの下のいくつかの常用クラスです
1.ArrayUtils
ArrayUtilsのAPIには、このクラスはデータを操作するために使用され、元のタイプのデータ(int[]aなど)とパッケージクラスのデータ(Integer[]aなど)であると書かれています.このクラスのすべてのメソッドは異常を投げ出すことはありません.メソッドにnullタイプを入力しても、配列にnullへの参照が含まれていても.
このクラスには、オブジェクト、文字列、基本タイプ、パッケージタイプを含むいくつかの空の配列が定義されています.長さは0です.
以下の方法は,特に言う場合を除き,対象に対する8つの基本タイプの処理がある.
add(Object[]Object)メソッドは、元のデータに要素を追加し、その実装の内部に元の配列よりも1つ大きい配列を生成し、データを新しい配列にコピーし、最後の位置に追加する要素を加え、nullまたは空の配列にデータを追加する方法です.それに対応する配列が自動的に生成されます.
add(Object[],int,Object)メソッドは、元の配列に要素を追加し、指定した位置に埋め込む方法です.
addAll(Object[],Object[])は、2つの配列が結合した新しい配列を返します.
2.BooleanUtilsクラス
このクラスはbool値の一般的な操作を閉じ、Booleanクラスと元のデータ型、および他のパッケージクラスとの間の変換を含む.ArrayUtilsクラスと同様にnullタイプも優雅に処理される.
isFalse(Boolean)は偽かどうかを判断する
isTrue(Boolean)は真か否かを判断する
negate(Boolean)はパラメータを否定演算する
isNotFalse(Boolean)は偽でないかどうかを判断する
isNotTrue(Boolean)は真でないかどうかを判断する
xor(Boolean[])、xor(boolean[])は配列内の要素を異種または演算します.
toBoolean(...)booleanに変換
toBooleanObject(...)Booleanクラスに変換
この2つの方法は大きくて同じで、そのパラメータについて2つあります.1つは単一のパラメータで、異なるデータ型で、その処理方法はあまり同じではありません.処理方法は以下の通りです.
int 0-->false、その他-->true
boolean false-->false,true-->true
String yes,y,on,true-->true,その他-->false(大文字と小文字を区別しない)は、異なる文字列を処理する際にパフォーマンスが異なるので、trueとfalseを使用することをお勧めします.
3つのパラメータの場合、指定したパラメータを指定したルールでbooleanまたはBooleanタイプに変換することを意味し、変換するパラメータは1番目のパラメータであり、1番目のパラメータが2番目のパラメータと同じであればtrueを返し、3番目のパラメータと同じであればfalseを返し、そうでなければ異常を投げ出す
その他:toInteger、toIntergerObject、toString、toStringOnOff、toStringTrue、toStringYesNoといくつかの処理
3.CharEncoding
6つの文字定数が定義されています.これらの定数はJAVAプラットフォームでサポートされている符号化方式です.彼らはISOです.8859_1,US_ASCII,UTF_16,UTF_16BE,UTF_16LE,UTF_8
メソッドisSupported(String)は、受信された符号化メソッドjavaがサポートされているかどうかをテストする.
4.CharRange
可変クラスのインスタンスである文字範囲クラス
文字列の範囲に使用します.
5.CharSet
クラスのインスタンスが可変であることに注意する文字セットクラス.
このクラスの実装原理は,内部で1つのHashMapを用いてすべての範囲を含むことである.
このクラスの内部には、次のような文字セット定数が定義されています.
6.CharSetUtilsクラス
CharSetの補助クラスで、このクラスには以下の方法が含まれています.
今日の主役はcommons-langバッグの下のいくつかの常用クラスです
1.ArrayUtils
ArrayUtilsのAPIには、このクラスはデータを操作するために使用され、元のタイプのデータ(int[]aなど)とパッケージクラスのデータ(Integer[]aなど)であると書かれています.このクラスのすべてのメソッドは異常を投げ出すことはありません.メソッドにnullタイプを入力しても、配列にnullへの参照が含まれていても.
このクラスには、オブジェクト、文字列、基本タイプ、パッケージタイプを含むいくつかの空の配列が定義されています.長さは0です.
以下の方法は,特に言う場合を除き,対象に対する8つの基本タイプの処理がある.
add(Object[]Object)メソッドは、元のデータに要素を追加し、その実装の内部に元の配列よりも1つ大きい配列を生成し、データを新しい配列にコピーし、最後の位置に追加する要素を加え、nullまたは空の配列にデータを追加する方法です.それに対応する配列が自動的に生成されます.
ArrayUtils.add(null, null) = [null]
ArrayUtils.add(null, "a") = ["a"]
ArrayUtils.add(["a"], null) = ["a", null]
ArrayUtils.add(["a"], "b") = ["a", "b"]
ArrayUtils.add(["a", "b"], "c") = ["a", "b", "c"]
add(Object[],int,Object)メソッドは、元の配列に要素を追加し、指定した位置に埋め込む方法です.
ArrayUtils.add(null, 0, null) = [null]
ArrayUtils.add(null, 0, "a") = ["a"]
ArrayUtils.add(["a"], 1, null) = ["a", null]
ArrayUtils.add(["a"], 1, "b") = ["a", "b"]
ArrayUtils.add(["a", "b"], 3, "c") = ["a", "b", "c"]
addAll(Object[],Object[])は、2つの配列が結合した新しい配列を返します.
ArrayUtils.addAll(array1, null) = array1
ArrayUtils.addAll(null, array2) = array2
ArrayUtils.addAll([], []) = []
clone(Object[]) // , clone
indexOf(Object[],Object,int)// int Object , INDEX_NOT_FOUND(=-1) indexOf(Object[],Object) contains(Object[],Object)//
lastIndexOf(Object[],Object,int)// int Object
isEmpty(Object[])//
isSameLength(Object[],Object[])///
remove(Object[],int)// int
removeElement(Object[],Obect)// Object
clone(Object[])// Object
subarray(Object[],int i,int j)// Object i j
toMap(Object[] array)// array Map ,array Object[] Map.Entry
toObject(int[]) toPrimitive(Integer[])// ,
2.BooleanUtilsクラス
このクラスはbool値の一般的な操作を閉じ、Booleanクラスと元のデータ型、および他のパッケージクラスとの間の変換を含む.ArrayUtilsクラスと同様にnullタイプも優雅に処理される.
isFalse(Boolean)は偽かどうかを判断する
isTrue(Boolean)は真か否かを判断する
negate(Boolean)はパラメータを否定演算する
isNotFalse(Boolean)は偽でないかどうかを判断する
isNotTrue(Boolean)は真でないかどうかを判断する
xor(Boolean[])、xor(boolean[])は配列内の要素を異種または演算します.
toBoolean(...)booleanに変換
toBooleanObject(...)Booleanクラスに変換
この2つの方法は大きくて同じで、そのパラメータについて2つあります.1つは単一のパラメータで、異なるデータ型で、その処理方法はあまり同じではありません.処理方法は以下の通りです.
int 0-->false、その他-->true
boolean false-->false,true-->true
String yes,y,on,true-->true,その他-->false(大文字と小文字を区別しない)は、異なる文字列を処理する際にパフォーマンスが異なるので、trueとfalseを使用することをお勧めします.
3つのパラメータの場合、指定したパラメータを指定したルールでbooleanまたはBooleanタイプに変換することを意味し、変換するパラメータは1番目のパラメータであり、1番目のパラメータが2番目のパラメータと同じであればtrueを返し、3番目のパラメータと同じであればfalseを返し、そうでなければ異常を投げ出す
その他:toInteger、toIntergerObject、toString、toStringOnOff、toStringTrue、toStringYesNoといくつかの処理
3.CharEncoding
6つの文字定数が定義されています.これらの定数はJAVAプラットフォームでサポートされている符号化方式です.彼らはISOです.8859_1,US_ASCII,UTF_16,UTF_16BE,UTF_16LE,UTF_8
メソッドisSupported(String)は、受信された符号化メソッドjavaがサポートされているかどうかをテストする.
4.CharRange
可変クラスのインスタンスである文字範囲クラス
文字列の範囲に使用します.
CharRange(char) //
CharRange(char,boolean) //
CharRange(char start,char end) // start end
CharRange(char start,char end,boolean negated) //negated start end
contains(char) //
contains(CharRange) //
getStart(),getEnd() //
isNegated() //
5.CharSet
クラスのインスタンスが可変であることに注意する文字セットクラス.
このクラスの実装原理は,内部で1つのHashMapを用いてすべての範囲を含むことである.
このクラスの内部には、次のような文字セット定数が定義されています.
EMPTY //
ASCII_ALPHA //a-zA-Z
ASCII_ALPHA_LOWER //a-z
ASCII_ALPHA_UPPER //A-Z
ASCII_NUMRIC //0-9
getInstance(String) // CharSet ,string
/* ^a-e
* a-e
* ^a
* a
* abe-gx-z
* ,
*/
getInstance(String[])//
contains(char) //
getCharRanges() // CharSet , CharRange[]
6.CharSetUtilsクラス
CharSetの補助クラスで、このクラスには以下の方法が含まれています.
evaluateSet(String[] set) // CharSet , CharSet.getInstance(String[])
squeeze(String str,String set) // str , ( set )
count(String str,String set) // str , set
count(String str,String[] set) //
keep(String str,String set) // str set
keep(String str,String[] set) //
delete(String str,String set) // str set
delete(String str,String[] set) //
translate(String str,String searchChars,replaceChars) // str searchChars replaceChars( , StringUtils.replaceChars(String,String,String))