【guava】基础用法

article/2025/9/24 14:54:15

依赖

    <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>29.0-jre</version></dependency>

不可变集合与对象

优点:1、线程安全 2、可用作常熟

ImmutableXXX

创建方式:1、copeOf 2、of 3、Builder

代码:

public static void main(String[] args) {HashSet<String> set = new HashSet<String>();set.add("a");set.add("b");set.add("c");//Immutablexxx collection set list map sortedMap 等等//三种方法:copyOf of builderImmutableSet<String> set2 = ImmutableSet.copyOf(set);ImmutableSet<String> set3 = ImmutableSet.of("d", "f", "g");ImmutableSet.Builder<Object> add = ImmutableSet.builder().add("a", "d", "ddd");HashMap<Integer, String> map = new HashMap<Integer, String>();map.put(1,"姓名");map.put(2,"年龄");map.put(3,"学院");ImmutableMap<Integer, String> immutableMap = ImmutableMap.copyOf(map);ImmutableMap.Builder<Integer, String> map2 = ImmutableMap.<Integer, String>builder().put(1, "姓名").put(2, "年龄").put(3, "学院");System.out.println("key=2,结果是:"+immutableMap.get(2));
}

guava对应jdk各种不可变版本

 Multiset 可重复集合和Multimap 多重映射

Multiset相当于内部做了一个map,multimap相当于

代码:

    public static void main(String[] args) {//multiset 内部使用一个 HashMap 来维护HashMultiset<String> setMulti = HashMultiset.create();setMulti.add("1");setMulti.add("1");System.out.println("1的数量有:"+setMulti.count("1"));}

multimap的多种实现:有序、无序

 BiMap 双向映射

Map<String, Integer> nameToId = Maps.newHashMap();
Map<Integer, String> idToName = Maps.newHashMap();nameToId.put("Bob", 42);
idToName.put(42, "Bob");

Stopwatch秒表基本用法

new StopWatch(); //  new StopWatch("");watch.start(); // 启动 watch.start("");
watch.stop(); // 暂停watch.getLastTaskName(); // 上个任务名称
watch.getLastTaskTimeMillis(); // 上个任务毫秒数
watch.getLastTaskInfo(); // 包含3个信息,如: {"taskName":"task0","timeMillis":1000,"timeSeconds":1.0}watch.getTaskCount(); // 总任务数
watch.getTotalTimeMillis(); // 总毫秒
watch.getTotalTimeSeconds(); // 总秒数watch.getId(); // 多秒表才用的到


http://chatgpt.dhexx.cn/article/uvdTa1gs.shtml

相关文章

guacamole 源码_Guacamole学习笔记

1: 介绍: Guacamole可以同HTML5来代理远程桌面协议(如: VNC, RDP, Telnet, SSH) 官网: http://guac-dev.org/ 2: 架构: 架构图: image.png 架构解释: 用户通过浏览器连接到Guacamole的服务端, Guacamole通过JS写的客户端是为用户提供服务, 服务端和客户端的通信是基于HTTP的私有…

Guacamole 介绍以及架构

目前在从事一些虚拟化解决方案方面的工作&#xff0c;最近项目有需求&#xff0c;希望能在浏览器上远程操作虚拟机。 此时发现了Guacamole&#xff0c;一个提供远程桌面的解决方案的开源项目&#xff0c;通过浏览器就能操作虚拟机&#xff0c;适用于Chrome&#xff0c;Firefox&…

使用Google Guava来编写优雅的代码一Guava简介

以往我们在使用工具包的时候首先想到是著名的Apache的Commons系列,今天我要介绍的是同样出色&#xff0c;并且目前发展比Apache Commons系列更为迅速的Google Guava库。 Google Guava库是一个非常优秀的包含很多Java工具类集的库&#xff0c;广泛使用在Google公司内部&#xf…

guacamole学习小结(一)

一、快速安装 https://blog.csdn.net/qq_38781075/article/details/106459458 二、整体理解 先放一张经典的图。 guacamole最重要的作用还是连接远程服务器的&#xff0c;可以连接多台服务器&#xff0c;连接不同的远程协议的服务器。使得用户能远程快捷的访问远程桌面。它跨…

guacamole 认识

简介&#xff1a;guacamole是apache开源的一款连接远程机器(类似window机器的mstsc工具以及linux的 xfreerdp远程工具)的web应用。 官网&#xff1a;http://guacamole.apache.org/ 一、介绍 1、先看看官网提供的架构图 其中guacamole将架构图中 HTML5(JavaScript编写)以及g…

Guacamole搭建教程

目录 安装系统环境安装依赖环境安装依赖包 下载安装包服务端安装解压并安装&#xff1a;在当前目录下继续执行&#xff1a;安装完成之后&#xff0c;可以使用以下来看guacd是否安装成功&#xff1a; 客户端安装安装安装git安装maven 下载客户端并解压创建/etc/guacamole/文件目…

使用EasyDarwin+FFmpeg实现rtsp推流

一、背景 ​ 最近在学习ffmpeg的基本操作,ffmpeg功能非常强大&#xff0c;可以运行音频和视频多种格式的录影、转换、流功能&#xff0c;包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库&#xff0c;以及libavformat——一个音频与视频格式转换库 可以利用ff…

windows 10 安装EasyDarwin流服务器推流、本地存储

1、EasyDarwin介绍 EasyDarwin 是一款开源的、高性能的rstp流媒体服务器&#xff0c;基于go语言开发。主要功能有&#xff1a;支持rtsp推流分发、支持rtsp拉流分发、录像、检索、回访、关键帧缓存、秒开画面、Restful接口、web后台管理、分布式负载均衡等特点。 2、安装部署&a…

从零开始搭建EasyDarwin环境——Windows系统开发环境Golang的搭建

EasyDarwin在语言上服务端使用的是Golang&#xff0c;前端网页是Vue&#xff0c;因此我们需要有Golang和node的开发环境。上一篇我们介绍了Linux环境下的搭建&#xff0c;本章我们将说明一下如何在Windows下搭建起Golang环境。 一、下载 Go包 Go的官方网站&#xff1a;http://…

EasyDarwin源码分析(三)——rtsp-client

rtsp-client.go 这个模块主要实现了客户端的拉流功能。也就是在网页上点击“拉流分发”按钮后&#xff0c;easydarwin会向用户填写的源地址拉流&#xff0c;然后再转发出去&#xff0c;在向源地址拉流的时候&#xff0c;easydarwin相当于是一个rtsp客户端。所以这里使用rtsp-c…

EasyDarwin源码分析(一)——main.go

main.go ​ easydarwin源码的代码量不是很多&#xff0c;主要的代码也就集中在下面的几个文件夹中&#xff0c;核心业务的代码也就主要集中在rtsp包中。 ​ 而且用Go语言写的代码&#xff0c;不像springboot那样&#xff0c;你在读源码前至少要对Springboot框架有一定的学习&a…

关于EasyDarwin二次开发编译后无法以服务启动的问题

问题描述&#xff1a; 在win7上二次开发EasyDarwin后&#xff0c;编译出的EasyDarwin.exe运行正常&#xff0c;或是使用ServiceInstall-EasyDarwin.exe在系统中注册服务&#xff0c;启动服务也正常。 于是打包将其部署在win server 2008上&#xff0c;发现如果直接运行EasyDar…

EasyDarwin接口的使用——使用C++编写客户端实现与EasyDarwin服务器的交互

EasyDarwin提供了接口供客户端使用&#xff0c;以实现客户端与其的交互。比如&#xff0c;根据EasyDarwin的8.1.0版本的接口文档&#xff0c;有获取推流列表的接口如下所示&#xff1a; 我们可以测试一下上述接口。首先启动EasyDarwin服务器&#xff0c;启动后在浏览器&#xf…

EasyDarwin的交叉编译

easyDarwin的交叉编译 前言一、EasyDarwin简介二、配置环境介绍三、交叉编译过程1.go环境的搭建2.编译 后记 前言 最近项目有个需求是在嵌入式设备中运行一个RTSP服务器&#xff0c;满足推流到该服务器后&#xff0c;其他终端设备能够从这个RTSP服务器中拉RTSP流出来。找来找去…

EasyDarwin 流服务器搭建及相关软件教程

一、产品 运行 exe 文件 启动 服务器 双击 运行 EasyDarwin.exe 会出现如下界面&#xff1a; 在 浏览器打开 http://192.168.10.80:10008 2.解压ffmpeg 添加环境变量&#xff1a;复制C:\SoftWare\ffmpeg-6.0-essentials_build\bin路径&#xff0c;添加环境变量中 的用户变…

EasyDarwin —— ubuntu搭建rtsp服务,使用FFmpeg进行rtsp推拉流

开源流媒体服务器 EasyDarwin是由国内开源流媒体团队开发和维护的一款开源流媒体平台框架&#xff0c;从2012年12月创建并发展至今&#xff0c;从原有的单服务的流媒体服务器形式&#xff0c;扩展成现在的云平台架构的开源项目&#xff0c;更好地帮助广大流媒体开发者和创业型企…

EasyDarwin测试

EasyDarwin是由国内开源流媒体团队维护的一款开源流媒体平台框架&#xff0c;开发语言是go语言。本文主要使用它作为RTSP服务器使用&#xff0c;并以此进行测试。方便之后记录。 &#xff08;1&#xff09;软件获取&#xff08;自行下载&#xff0c;具体代码编译方式&#xff0…

流媒体开发之EasyDarwin搭建rtsp server

0 背景 EasyDarwin 旭帆科技开源的流媒体服务器软件&#xff0c;EasyDarwin 社区专注于传统安防&#xff08;RTSP/RTP/Onvif&#xff09;流媒体技术&#xff0c;能够帮助开发者快速搭建流媒体服务平台&#xff0c;更快、更简单地实现流媒体直播与点播功能。本文主要介绍 rtsp …

EasyDarwin ffmpeg+EasyDarwin开源流媒体服务器平台试用笔记(视频流rtsp)

服务 Github https://github.com/EasyDarwin/EasyDarwin , server will invoking ffmpeg. 1. download server 下载EasyDarwin-windows-8.1.0-1901141151 双击EasyDarwin.exe 访问http://127.0.0.1:10008/#/ 2. download FFmpeg 下载FFmpeg : https://github.com/BtbN…

从零开始搭建EasyDarwin环境——linux系统共享目录实现

EasyDarwin是一款高性能开源RTSP流媒体服务器&#xff0c;基于Go语言研发&#xff0c;维护和优化&#xff1a;RTSP推模式转发、RTSP拉模式转发、录像、检索、回放、关键帧缓存、秒开画面、RESTful接口、Web后台管理、分布式负载均衡。EasyDarwin从最初的c到后面的nodejs再到现在…