pom數組
testapp
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </dependency>
guavaide
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>27.0.1-jre</version> </dependency>
1、FluentIterable測試
初始化數據google
// 這裏初始化一些測試數據 @Before public void setUp() { Girl girl1 = new Girl(17, "nice"); Girl girl2 = new Girl(18, "not so nice"); Girl girl3 = new Girl(19, "nice"); Girl girl4 = new Girl(20, "not so nice"); // 這裏使用Lists.newArrayList添加對象,避免屢次調用list.add方法,下篇會有說明 girls = Lists.newArrayList(girl1, girl2, girl3, girl4); } // 測試用Girl對象 static class Girl { int age; String face;
過濾 from filterspa
/** * from方法:用於包裝Iterable接口,返回FluentIterable實例 * filter方法:用於過濾集合中元素,返回過濾後的集合 */ FluentIterable<Girl> iterable = FluentIterable.from(girls).filter(new Predicate<Girl>(){ @Override public boolean apply(@Nullable Girl input) { // 過濾相貌nice的Girl對象 return "nice".equals(input.getFace()); } }); for (Girl girl : iterable) { System.out.println(girl.toString()); // 輸出 //Girl [age=17, face=nice] //Girl [age=19, face=nice] }
轉換transfrom + 拼接.net
/** * transform方法:用於根據指定Function轉換集合元素,返回轉換後的集合 */ Iterable<String> fluentIterable = FluentIterable.from(girls).transform(new Function<Girl, String>() { @Override public String apply(Girl input) { //Joiner類對相應的元素內容進行拼接處理 return Joiner.on(",").join(input.getAge(), input.getFace()); } }); for (String girl : fluentIterable) { /** 打印結果: 17,nice 18,not so nice 19,nice 20,not so nice */ System.out.println(girl); }
2、Listrest
建立新的Listcode
LIst轉換處理orm
ArrayList<String> newArrayList = Lists.newArrayList(); List<String> keys = Lists.newArrayList("a", "b", "c", "a"); /** * transform:根據傳進來的function對fromList進行相應的處理 並將處理獲得的結果存入到新的list對象中返回 */ List<String> newList = Lists.transform(keys, new Function<String, String>() { @Override public String apply(String input) { // 這裏簡單的對集合中的元素轉換爲大寫 return input.toUpperCase(); } }); System.out.println(newList);// [I LOVE U, I LIKE U, I HATE U] String str = "i love u";// 測試用 String[] strs = { "i like u", "i miss u" };// 測試用
/**
* asList:返回一個不可變的List 其中包含指定的第一個元素和附加的元素數組組成 修改這個數組將反映到返回的List上
*/
List<String> list = Lists.asList(str, strs);
分割、反轉
reverse
3、Map
建立、
將set轉成Map
HashMap<Object, Object> mapa = Maps.newHashMap(); /** * asMap:返回一個活動的map * 鍵值爲給定的set中的值 * value爲經過給定Function計算後的值。 */ Set<String> set = Sets.newHashSet("a", "b", "c"); //Function:簡單的對元素作大寫轉換,下面示例屢次使用 Function<String, String> function = new Function<String, String>() { @Override public String apply(String input) { return input.toUpperCase(); } }; //輸出:{b=B, c=C, a=A} System.out.println(Maps.asMap(set, function));
參考:https://my.oschina.net/realfighter?tab=newest&catalogId=576615