Guava collections -- Maps
来源:互联网 发布:淘宝二手市场入口 编辑:程序博客网 时间:2024/06/05 08:31
Guava全文介绍地址:Google Guava
这次主要介绍是的是com.google.common.collect.Maps.主要的作用是就与Java Map相关的静态的实用方法。在Guava中与之类似的还有Sets,Lists以及Queues这些类。
下面就介绍一个Maps的主要用法:
1、准备工作
1.基础类
@Builderpublic class Book { private String author; private String title; private String publisher; private String isbn; private double price;}
2.构造数据
public class MapsTest { private Book book = new Book.Builder().isbn("ISBN123").title("book1").build(); private Book book2 = new Book.Builder().isbn("ISBN456").title("book2").build(); private Book book3 = new Book.Builder().isbn("ISBN789").title("book3").build(); private List<Book> books = Lists.newArrayList(book,book2,book3);}
2、把集合中唯一Filed作用的Map
@Test public void uniqueIndexTest(){ Map<String,Book> bookMap = Maps.uniqueIndex(books,new Function<Book, String>() { @Override public String apply(Book book) { return book.getIsbn(); } }); assertThat(bookMap.get("ISBN123"),is(book)); assertThat(bookMap.get("ISBN456"),is(book2)); assertThat(bookMap.get("ISBN789"),is(book3)); }
3、把Set中对象作为key,把field作为value
@Test public void asMapTest(){ Set<Book> bookSet = Sets.newHashSet(books); Map<Book,String> bookToIsbn = Maps.asMap(bookSet,new Function<Book, String>() { @Override public String apply(Book book) { return book.getIsbn(); } }); assertThat(bookToIsbn.get(book),is("ISBN123")); assertThat(bookToIsbn.get(book2),is("ISBN456")); assertThat(bookToIsbn.get(book3),is("ISBN789")); }
4、对Map的Value进行转换
@Test public void transformValuesTest(){ Map<String,Book> bookMap = Maps.uniqueIndex(books,new Function<Book, String>() { @Override public String apply(Book book) { return book.getIsbn(); } }); Map<String,String> map = Maps.transformValues(bookMap,new Function<Book, String>() { @Override public String apply(Book book) { return book.getTitle(); } }); assertThat(map.get("ISBN123"),is("book1")); assertThat(map.get("ISBN456"),is("book2")); assertThat(map.get("ISBN789"),is("book3")); }
5、对Map的Entry进行转换
@Test public void transformEntriesTest(){ Map<String,Book> bookMap = Maps.uniqueIndex(books,new Function<Book, String>() { @Override public String apply(Book book) { return book.getIsbn(); } }); Map<String,String> map = Maps.transformEntries(bookMap,new Maps.EntryTransformer<String,Book,String>(){ @Override public String transformEntry(String key, Book value) { StringBuilder builder = new StringBuilder(); return builder.append(key).append("|").append(value.getTitle()).toString(); } }); assertThat(map.get("ISBN123"),is("ISBN123|book1")); assertThat(map.get("ISBN456"),is("ISBN456|book2")); assertThat(map.get("ISBN789"),is("ISBN789|book3")); }
更多功能等待你的发现。
0 0
- Guava collections -- Maps
- Guava ---- Maps
- Guava collections -- Immutable Collections
- Google Guava Collections
- Google Guava Collections
- Guava Collections使用介绍
- Guava collections -- FluentIterable
- Guava collections -- Lists
- Guava collections -- Sets
- Guava collections -- Multimaps
- Guava collections -- BiMap
- Guava collections -- Table
- Guava collections -- Range
- Guava collections -- Ordering
- Google Guava Collections 使用介绍
- Google Guava Collections 使用介绍
- Google Guava Collections 使用介绍
- Google Guava Collections 使用介绍
- chrome浏览器安装失败,已解决
- 1>LINK : fatal error LNK1561: 必须定义入口点
- Android组件----RelativeLayout相对布局的属性详解
- 成员函数及this指针的意义
- C++ delete 和delete[] 的区别
- Guava collections -- Maps
- Java面向对象小项目 慕课网Java入门第二季答答租车系统
- 定义AnimateWindow关闭
- 表格嵌套—JavaWeb学习之路Day1
- 设计模式之单例模式
- 使用Fragment实现Tab切换(高仿微信主界面)
- git push updates were rejected because the remote contain works that you do not have
- 欢迎使用CSDN-markdown编辑器
- linux 命令--压缩