티스토리 뷰
Google 이란 이름은 무한 신뢰하게 됩니다. ^^;
Guava 는 그러한 Google 에서 만든 오픈소스 라이브러리입니다. (과일을 이야기 하는 것이 아닙니다.ㅎㅎ)
가독성 있는 코드를 작성하기 위한 많은 유틸 클래스를 제공합니다.
이하 Guava 를 이용한 간단한 샘플 코드입니다. 추후 계속 업데이트할 예정입니다.
Test Guava Version
12345 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>12.0.1</version></dependency> cs
1 2 3 4 5 | <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>12.0.1</version> </dependency> | cs |
1.문자열 length 기준으로 split 하기
1 2 3 4 5 6 7 8 | String fruits = "사과딸기레몬포도"; Iterable<String> split = Splitter.fixedLength(2).split(fruits); //2자 단위로 split Iterator<String> iterator = split.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } | cs |
OUTPUT:
사과
딸기
레몬
포도
2.Literal list & Sort
1 2 3 4 5 6 7 8 9 | List<Integer> number = Lists.newArrayList(1, 8, 4, 10, 5, 9 ,2 ,3 ,6 ,7); Ordering<Integer> descNumber = new Ordering<Integer>() { @Override public int compare(@Nullable Integer origin, @Nullable Integer target) { return Ints.compare(origin, target); } }; Collections.sort(number, descNumber); System.out.println(number); | cs |
OUTPUT:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
3.Grouping
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public static void main(String[] args) { List<Emp> empList = Lists.newArrayList(new Emp("Tom","개발팀"), new Emp("Sara","개발팀"), new Emp("Kris","운영팀"), new Emp("Corn","운영팀"), new Emp("Foo","경영팀") ); Function<Emp, String> byDept = new Function<Emp, String>() { public String apply(@NonNull Emp emp) { return emp.getDept(); } }; ImmutableListMultimap<String, Emp> index = Multimaps.index(empList, byDept); System.out.println(index.get("개발팀")); } static class Emp { private final String name; private final String dept; public Emp(String name, String dept) { this.name = name; this.dept = dept; } public String toString() { return name+":"+dept; } public String getDept() { return dept; } } | cs |
OUTPUT:
[Tom:개발팀, Sara:개발팀]
4.String Joining
1 2 3 4 5 | public static void main(String[] args) { List<String> fruitList = Lists.newArrayList("딸기","사과","바나나","키위","수박"); String joinResult = Joiner.on(",").join(fruitList); System.out.println(joinResult); } | cs |
OUTPUT:
[딸기,사과,바나나,키위,수박]
5.Readable Range
1 2 3 4 5 6 7 | Range<Integer> range = Ranges.closed(1, 10); //open 은 등호 제외 1 < x < 10 int target = 3; if (range.contains(target)) { // if (target >= 1 && target <= 10) System.out.println("1 ~ 10 범위"); } | cs |
OUTPUT:
1 ~ 10 범위
6.Collection literal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ImmutableList<String> list = ImmutableList.of("apple", "lemon", "banana", "grape"); System.out.println(list); ImmutableSet<String> set = ImmutableSet.of("apple", "lemon", "banana", "grape", "apple"); System.out.println(set); ImmutableMap<String, String> map = ImmutableMap.of("name", "martin", "gender", "male"); System.out.println(map); //java 9 + /* List<String> list = List.of("apple", "lemon", "banana", "grape", "apple"); Set<String> set = Set.of("apple", "lemon", "banana", "grape", "apple"); */ | cs |
OUTPUT:
[apple, lemon, banana, grape]
[apple, lemon, banana, grape]
{name=martin, gender=male}
7.List filter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | List<String> fruits = Lists.newArrayList(null, "apple", "lemon", "melon", "apple", "orange", "grape"); //null 제거 List<String> fruitsExceptNull = Lists.newArrayList(Iterables.filter(fruits, Predicates.notNull())); //사과는 제거 List<String> frutisExceptApple = Lists.newArrayList(Iterables.filter(fruitsExceptNull, new Predicate<String>() { @Override public boolean apply(@Nullable String s) { return !"apple".equals(s); } })); for (String fruit : frutisExceptApple) { System.out.println(fruit); } | cs |
OUTPUT:
lemon
melon
orange
grape
'Java' 카테고리의 다른 글
[자바] 추상클래스와(abstract class) 와 인터페이스(interface) (0) | 2018.03.09 |
---|---|
[자바]static(클래스) 메소드는 언제 쓰나 (0) | 2018.03.07 |
[자바]List 에서 previous 값 접근하기 (0) | 2018.02.13 |
[자바] 자바에서 Call By Value 인가? Call By Reference? (0) | 2018.01.23 |
[자바] 자바8 에서 하위디렉토리 전부 삭제하기 (0) | 2018.01.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크