Java集合、數組和字符串整合API Dollar
把Java中的集合,數組,字符串整合成一個統一的api。很類似JQuery中的著名的$函數。
Dollar
- 100% Java6 (no cglib proxies, bytecode manipulation)
- single jar (no dependencies besides JDK6)
- fluent builders for Lists, Sets and Maps
- boxing and (null-safe) unboxing of primitive arrays
- advanced array boxing (e.g. int[] -> List<Integer>)
- design based on use cases provided by stackoverflow.com questions (see DollarTest.java)
- beware: eager, mutable state
- more than 300 unit tests
- LGPL version 3
- pull requests are welcome and encouraged
看例子吧:
// 產生 0, 1, 2, 3, 4序列
List list = $(5).toList();
// 指定開始結束的序列 10, 11, 12, 13, 14
List list2 = $(10, 15).toList();
// 產生隨機數序列
List randomIntegers = $(new Random(), 100).samples(50).sort().toList();
// jion方法,我太喜歡了。"4->3->2->1->0"
$(5).reverse().join("->");
// join() any iterable to a String
$(array).join();
$(list).join();
$(set).join();
// join() works also for 'range' type
$(5, 10).join(); // "56789"
$('a', 'd').join("-"); // "a-b-c-d"
// and even on strings, StringBuilders, etc
$("aaa").join(" "); // "a a a"
// repeat Strings, but it works also for any Iterable/Collection and Array
String repeat = $("abc").repeat(3).join(" "); // "abc abc abc"
// convert Long[] to long[], while sorting it
Long[] aLongArray = { 42L, 84L };
long[] longs = $(aLongArray).sort().toLongArray();
// fluent interface: convert a primitive int array to ArrayList, in the reversed order
int[] array = { 4, 2, -5 };
List list = $(array).sort().reverse().toList();
// you can even unbox a short[] array to long[] (since it doesn't cause a loss of precision)
short[] shorts = { 42, 42, 42 };
long[] $(shorts).toLongArray();
// syntactic sugar
$("a string").size(); // "a string".length()
$(aCollection).size(); // aCollection.size()
$(anArray).size(); // anArray.length
$(array).toString(); // calls Arrays.toString()
// for loop以前這么寫
for (int i = 0; i < 10; i++) {
}
// 現在只需要
for (int i : $(10)) {
}
//查找 排序 取出最大最小值
$(any).indexOf(T)
$(any).sort(Comparator)
$(any).max(Comparator)
$(any).min(Comparator)
import static com.humaorie.dollar.Dollar.*;
// yes, $ is a valid Java identifier
// build the List 0, 1, 2, 3, 4
List<Integer> list = $(5).toList();
// build the List 10, 11, 12, 13, 14
List<Integer> list2 = $(10, 15).toList();
// build a sorted random list of 50 integers up to 100
List<Integer> randomIntegers = $(new Random(), 100).samples(50).sort().toList();
// build the String "4->3->2->1->0"
$(5).reverse().join("->");
// repeat a String
String repeat = $("abc").repeat(3).join(" "); // "abc abc abc"
// convert and sort a Long[] to long[]
Long[] aLongArray = { 42L, 84L };
long[] longs = $(aLongArray).sort().toLongArray();
// fluent interface: convert a primitive int array to ArrayList, in the reversed order
int[] array = { 4, 2, -5 };
List<Integer> list = $(array).sort().reverse().toList();
// you can even unbox a short[] array to long[] (since it doesn't cause a loss of precision)
short[] shorts = { 42, 42, 42 };
long[] $(shorts).toLongArray();
// syntactic sugar
$("a string").size(); // "a string".length()
$(aCollection).size(); // aCollection.size()
$(anArray).size(); // anArray.length
$(array).toString(); // calls Arrays.toString()
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!