guava 的集合相关

Java世界最常用的工具类库 Apache Commons Apache Commons有很多子项目,常用的项目如下 @Data public class User { private String username; private String password; } 设置和获得属性 User user = new User(); BeanUtils.setProperty(user, "username", "li"); BeanUtils.getProperty(user, "user 阅读详情

  • guava集合相关

1.table相关

    public static void main(String[] args) {

		//HashBasedTable.<Integer, Integer, Integer> 表示为 HashBasedTable.<RowKey, ColumnKey, val>
        Table<Integer, Integer, Integer> table = HashBasedTable.<Integer, Integer, Integer>create();
        table.put(1, 2, 3);
        //允许row和column确定的二维点重复
        table.put(1, 6, 3);
        //table={1={2=3, 6=3}}
        //判断row和column确定的二维点是否存在
        if(table.contains(1, 2)) {
            table.put(1, 4, 4);
            table.put(2, 5, 4);
        }
        System.out.println(table);
        //获取column为5的数据集
        Map<Integer, Integer> column = table.column(5);
        //返回结果是 Map<RowKey, val> 的值
        System.out.println(column);
        //获取rowkey为1的数据集
        Map<Integer, Integer> row = table.row(1);
        System.out.println(row);
        //获取rowKey为1,columnKey为2的的结果
        Integer value = table.get(1, 2);
        System.out.println(value);
        //判断是否包含columnKey的值
        System.out.println(table.containsColumn(3));
        //判断是否包含rowKey为1的视图
        System.out.println(table.containsRow(1));
        //判断是否包含值为2的集合
        System.out.println(table.containsValue(2));
        //将table转换为Map套Map格式
        Map<Integer, Map<Integer, Integer>> rowMap = table.rowMap();
        System.out.println(rowMap);
        //获取所有的rowKey值的集合
        Set<Integer> keySet = table.rowKeySet();
        System.out.println(keySet);
        //删除rowKey为1,columnKey为2的元素,返回删除元素的值
        Integer res = table.remove(1, 2);
        //清空集合
        table.clear();
        System.out.println(res);
        System.out.println(table);
    }

结果

{1={4=4, 2=3, 6=3}, 2={5=4}}
{2=4}
{4=4, 2=3, 6=3}
3
false
true
false
{1={4=4, 2=3, 6=3}, 2={5=4}}
[1, 2]
3
{1={4=4, 6=3}, 2={5=4}}

Table有以下实现:
  HashBasedTable:基于HashMap<R,HashMap<C,V>>HashMap<R,HashMap<C,V>>的实现。
  TreeBasedTable:基于TreeMap<R,TreeMap<C,V>>TreeMap<R,TreeMap<C,V>>的实现。
  ImmutableTable:基于ImmutableMap<R,ImmutableMap<C,V>>ImmutableMap<R,ImmutableMap<C,V>>的实现。
TreeBasedTable的使用方式跟HashBasedTable基本相同,在这里就不在复述了。。。

2.map相关

Multimap<Integer, Integer> map = HashMultimap.<Integer, Integer>create();
map.put(1, 2);
map.put(1, 2);
map.put(1, 3);
map.put(1, 4);
map.put(2, 3);
map.put(3, 3);
map.put(4, 3);
map.put(5, 3);
System.out.println(map);
//结果  {1=[4, 2, 3], 2=[3], 3=[3], 4=[3], 5=[3]}

//判断集合中是否存在key-value为指定值得元素
System.out.println(map.containsEntry(1, 2));
System.out.println(map.containsEntry(1, 6));
//获取key为1的value集合
Collection<Integer> list = map.get(1);
System.out.println(list);
//返回集合中所有key的集合,重复的key将会用key * num的方式来表示
Multiset<Integer> set = map.keys();
System.out.println(set);
//返回集合中所有不重复的key的集合
Set<Integer> kset = map.keySet();
System.out.println(kset);
/*
true
false
[4, 2, 3]
[1 x 3, 2 x 2, 3, 4, 5]
[1, 2, 3, 4, 5]
*/
  • 从上面的结果集可以看出,key不可以重复,相同key的key-value pair 的value值是放在同一个数组中,相同的value会去重

ArrayListMultimap.create()

参考:https://blog.youkuaiyun.com/yaomingyang/article/details/80955872

set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三) 前言        前边已经对Guava类库做了简单介绍(博文:Java代码优雅之道-Guava(有相关jar包下载)),下面就简单介绍操作Set,Map,List集合的工具类的使用,学会灵活使用这些工具,会使用我们在开发中,更加省时省力,代码健壮性和可读性更高,更简洁,这也是我所谓的“代码优雅”,让我们开发中省出时间来去处理更重要的东西,废话不多说,一看代码就全明了了。 创建泛型集合更加简介 阅读详情

相关推荐

反制反心理特征的研究

抓牛股

m0_58032574的博客 908

Google的guava包

Google的guava包 工具类 就是封装平常用的方法。 更加方便的使用java的数据结构以及定义高级数据结构(pair、bimap等),提供非常使用的工具类)http://ifeve.com/google-guava/ 常用方法 字符串处理:分割,连接,填充 连接器【Joiner】 用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦。如果字符串序列中含有null,那连接操作会更难。Fluen...

Growing_way的博客 863

SAP 人力资源工资配置项3---工资项配置

工资项设置

xiouluoyang的专栏 1万+

guava深入理解(4)-集合

如果说guava的null处理,Preconditions,字符串处理很多别的库也有而且还更强。而且如果使用其他jvm语言,kotlin,groovy等,根本就用不上那些类,语言自带的反而更好。那么guava的collection类基本上目前还看不出有其他类库,语法特性可以替代。就算你是使用kotlin,groovy,scala。也可以很好的和guava的collection集成不可变集合Immut

o83290102o5的博客 729

什么是深度展开网络?如何将迭代算法的每一次迭代展开成深度网络对应的一层?深度展开网络进行端对端训练,其中端对端是什么意思?

在深度学习和机器学习的背景下,“端到端”(End-to-end)训练指的是将输入数据直接映射到最终输出的过程,而不需要任何中间的手动数据预处理或特征工程。- **自然语言处理**:端到端自然语言处理系统可以将自然语言输入直接转化为计算机可理解的语言输出,而不需要对语言进行分解和转化。- **推荐系统**:通过使用深度神经网络,端到端推荐系统可以直接根据用户历史行为预测其未来的兴趣爱好,并推荐相应的产品或服务。4. **直接映射**:从输入到输出的直接映射,中间没有任何拆分或分解的过程。

m0_67897882的博客 5433

DESeq2实战:如何用LRT检验分析基因表达随时间变化的模式(附完整代码)

本文详细介绍了如何使用DESeq2中的LRT检验分析基因表达随时间变化的模式,包括实验设计、数据预处理、模型构建、结果提取与可视化等完整流程。通过实战案例和完整代码,帮助生物信息学研究者掌握时间序列RNA-seq分析的核心技术,特别适合需要快速上手的实践者。

weixin_42620255的博客 466

Apache Commons 和 Guava 两个第三方的开源工具库的使用

通过 Apache Commons 和 Guava 两个第三方的开源工具库,可以减少循环、ifelse 的代码。写出的代码更有健壮性并且可以在新人面前装一波。Apache Commons 和 Guava 有许许多多的工具类,这里只列出了小小的部分,可以在官网例子中查看到各种用法。

初念初恋的博客 2934

[kriging](一)网上下载的kriging克里金的C++程序的初步调试

笔者在网上下载了一份克里金的C++程序,水平有限,正在逐步地调试中。 初步 克里金法现在在许多软件都已经有集成了,据笔者所知: arcgis : 看过有的arcgis培训视频里面简略介绍了里面的插值方法,有克里金。 surfer :笔者用过这个,效果很好。 gocad :听说有 landmark &jason :研究生时候用的专业的石油物探软件,里面有克里金法,万恶的开始。 pykrig...

FOREST优快云 5610

Google Guava常用工具类入门使用介绍及样例说明

目录概述基础工具1.Optional2.Objects.equals3.Objects.hash4.MoreObjects.toStringHelper5.ComparisonChain6.Preconditions集合工具1.ImmutableSet2.ImmutableList3.4.5.6.字符串工具1.2.3.4.5.6.附录1.Person.java 概述 工具类将经常用的一些方法进行了封装,遇到相同的场景时不需要重复造轮子,从而大量节省开发人员时间和提高工作效率,Guava就是谷歌发布的高效率的

进修的CODER 3348

Python全栈项目--手机语音远程控制智能家居系统(含嵌入式控制)

摘要:本项目实现了一个基于Python全栈的智能家居语音控制系统,支持手机端语音指令控制家居设备。系统采用FastAPI后端+Vue3前端的架构,集成Web Speech API实现语音识别,通过嵌入式设备(如ESP32)执行硬件控制。功能包括用户认证、设备管理、场景联动、指令解析和日志记录,支持HTTP轮询和直推两种命令下发模式。项目涵盖物联网全链路开发,适用于课程设计或毕业设计原型开发。

exlink2012的专栏 878

Altera FPGA与高速ADS4249和DAC3482的LVDS接口设计

引言:本文以TI的ADS4249(ADC)和DAC3482(DAC)之间的接口为例,介绍Altera FPGA与ADC/DAC之间的DDR LVDS接口设计以及时序约束详细设计。本文介绍的实例可方便扩展到具有类似接口格式的其他高速数据转换器设计。

FPGA_Designer 1899

Google Guava与集合操作相关的类

文章目录Collections集合1.不可变集合1.1示例1.2为什么使用1.3怎么用1.3.1`copyOf`比想象的更智能1.3.2`asList`1.4细节2.新集合类型2.1Multiset多重集合2.1.1Multiset不是Map2.1.2实现2.1.3SortedMultiset2.2Multimap多重映射2.2.1构造2.2.2修改2.2.3视图2.2.4Multimap不是Ma...

Life is for sharing的博客 1166

Ascend开发包Acllite安装

设置环境变量,配置程序编译依赖的头文件,库文件路径。“$HOME/Ascend”请替换“Ascend-cann-toolkit”包的实际安装路径。将YOLOV7原始模型转换为适配昇腾310处理器的离线模型(*.om文件),放在model路径下。运行完成后,会在样例工程的out目录下生成推理后的图片,显示对比结果如下所示。可以使用以下两种方式下载,请选择其中一种进行源码准备。请从以下链接获取该样例的输入图片,放在data目录下。执行以下命令,执行编译脚本,开始样例编译。执行运行脚本,开始样例运行。

如果想成为中心,那么就到中心去吧。 317

Guava包集合相关

Guava包的使用 集合相关功能: 1.只读设置     获得只读的list集合: /** * 获得只读的list */ @Test public void f1(){ //方式一,使用Arrays工具类 List list1 = Arrays.asList("aaa", "bbb");

u012717981的博客 242

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Java技术专题】「Guava技术系列」Guava-Collections实战使用相关Guava不一般的集合框架

Google Guava Collections 是一个对 Java Collections Framework 增强和扩展的一个开源项目。由于它高质量 API 的实现和对 Java特性的充分利用,使得其在 Java 社区受到很高评价。笔者主要介绍它的基本用法和功能特性。

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 391

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Guava库介绍之集合(Collection)相关的API

第一次使用Guava 1. 一些小功能 集合声明更简单 Java中同质的范型集合是一个很大的特色,但是有些时候他们的构造函数有点太啰嗦了,比如: MapString, MapString, Integer>> lookup = new HashMapString, MapString, Integer>>(); 在Java 7中通过钻石操作符来允许有限的非正式的类型推导。

wus_shang的博客 257

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[Java]-Guava工具库简介

文章目录字符串JointerSplitter拆分器工厂拆分器修饰符CharMatcher工厂方法操作方法Strings集合不可变集合新型集合MultisetMultimapRangeSet工具类ListsMapsuniqueIndexdifference扩展工具集ForwardingPreconditionsOrdering创建排序器链式调用使用缓存LoadingCacheCacheLoader缓存回收 Guava库中包含了一系列方便使用的工具库,如:集合 [collections] 、缓存 [cachin

飞鹰技术 3159

Guava学习笔记:Google Guava 类库简介

本文转自至:https://blog.youkuaiyun.com/qq_28867949/article/details/78913004 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string p...

zhouzhiwengang的专栏 698

Google Guava - FunctionalExplained(Guava函数式风格说明)

FunctionalExplained  函数式风格说明 Functional idioms in Guava, explained.  explained Updated Apr 10, 2013 by lowas...@google.com 重要说明 直到 Java 7, 想要在 Java 中实现函数式编程,只能通过笨重的匿名类来达到近似效果。这种情况在 Java 8 会有所

AIGC搞起 2573

guava不可变map集合初始化

Map<String, String> map= ImmutableMap.of( "model", "com.example.demo.model", "service", "com.example.demo.service", "controller", "com.example.demo.controller", "xml", "c...

aas3637721的博客 5350

Guava-Java核心工具库(一)

Java核心工具库

在都市的雨幕下找寻自我 1261

提升编程效率的利器: 解析Google Guava库之集合工具类-50个示例(八)

Guava库为Java的集合处理提供了一套全面且强大的工具类,极大地增强了Java集合框架的功能性和易用性。其中,Lists、Sets和Maps工具类简化了不可变集合的创建和常见操作,同时提供了集合转换、过滤、合并等高级功能。Iterables和Iterators工具类则扩展了迭代处理的能力,允许在迭代过程中进行流式处理,如元素转换和过滤。Ordering工具类引入了一个强大的比较器框架,支持自然排序、自定义排序和链式比较,为复杂排序需求提供了灵活解决方案。而EvictingQueue工具类实现了一种具有自

码到三十五 3235

java扩展类库_guava是Java的一个扩展类库

guava是Java的一个扩展类库,在google的许多项目中使用过了,现在最为一个 开源的Java类库广泛使用(http://code.google.com/p/guava-libraries/)。guava类库扩展的主要是这些相关类:collections(集合类),concurrency(并发),primitives,reflection(反射),comparison,I/O,hashing...

weixin_42613572的博客 301

Java基础(十五)Guava工具类的使用

Lists工具类: 拆分集合: list<Object> origin = new ArrayList(); List<List<Object>> partition = Lists.partition(origin , 200); 合并集合: List<A> aList = new ArrayList(); List<B&gt...

风之子 796

瓜娃(guava)的API快速熟悉使用

1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection API Guava BasicUtilities IO API Cache API 2,为神马选择瓜娃? 瓜娃是java API蛋糕上的冰激凌(精华) 高效设计良好的API. 被google的开发者设计,实现和使用。 遵循高效的java这本书的好...

大头之家 1429
上一篇: Google guava学习
下一篇: mock测试
@赶鸭子
博客等级 码龄9年 1粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值