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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!