Java集合、數組和字符串整合API Dollar

fmms 12年前發布 | 34K 次閱讀 Java Java開發

把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()

項目主頁:http://www.baiduhome.net/lib/view/home/1326943617015

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