首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面试官:怎么删除 HashMap 元素?一行代码搞定,赶紧拿去用!

背景 大家好,是栈长。 前些天,栈长给大家分享了两篇有意思文章: 带了一个 3 年开发,不会循环删除 List 元素,简直崩溃!! 面试官:怎么去除 List 重复元素?...有粉丝建议栈长出一篇删除 HashMap 里面的数据,也有粉丝建议出一个系列文章: 那这篇就分享下如何删除 HashMap 元素吧!...一般删除 HashMap 集合元素,如果知道具体 Key,并且需要根据 Key 删除元素,使用 remove 方法就可以了。但是如何根据 Value 删除 HashMap 集合元素呢?...删除 实际开发过程,可能会使用不同遍历方式,所以重点要考虑多线程场景,如果只是简单删除元素,使用 removeIf Stream 过滤是最省事。...所以说,你身边还有谁不会删除 HashMap 元素?把这篇文章发给他吧,让大家少走弯路,少写垃圾代码,共同进步。 你还知道哪些删除技巧?

1.2K50
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin入门(23)适配器进阶表达

前面在介绍列表视图网格视图时,它们适配器代码都存在视图持有者ViewHolder,因为Android列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应视图对象。...为方便理解循环适配器Kotlin编码,下面以微信公众号消息列表为例,给出对应消息列表Kotlin代码: //ViewHolder在构造时初始化布局控件对象 class RecyclerLinearAdapter...下面便是个循环视图网格适配器,它实现了类似淘宝主页网格频道栏目,具体Kotlin代码如下所示: //把公共属性公共方法剥离到基类RecyclerBaseAdapter, //此处仅需实现getItemCount...这下不管是在Activity代码,还是在适配器代码,均可将控件名称拿来直接调用了。...这么神奇魔法,快来看看Kotlin适配器代码如何书写: //利用Kotlin插件LayoutContainer,在适配器中直接使用控件对象,而无需对其进行显式声明 class RecyclerStaggeredAdapter

1.8K41

Jetpack新成员,Paging3吐槽到真香

如果你对于Kotlin还不太了解的话,可以去参考新书《第一行代码 Android 第3版》。...我们可以尝试在浏览器请求如下接口地址: https://api.github.com/search/repositories?...接下来调用刚才在GitHubService定义searchRepos()接口,并把pagepageSize传入,服务器获取当前页所对应数据。...注意LoadResult.Page()函数接收3个参数,第一个参数传入响应数据解析出来Repo列表即可,第二第三个参数分别对应着上一页下一页页数。...接下来定义RecyclerView适配器,但是注意,这个适配器也比较特殊,必须继承自PagingDataAdapter,代码如下所示: class RepoAdapter : PagingDataAdapter

2.4K20

一次使用Kotlin实现酷炫多选操作尝试

那时明白了必须千方百计把Vitaly多选概念设计实现出来;所以我几乎立即就开始了编写这个控件工作。现在让我们来看看这个安卓多选动画是如何诞生。 ?...删除被点击item并显示选中列表隐藏item。...这个过程中最技巧性部分是把viewlayout manager移除;否则layout manager 会尝试回收它,因为已经RecyclerView删除了这个view,所以这会导致错误: sourceRecycler.layoutManager.removeViewAt...Java相比,Kotlin最主要优点是其简明语法不会出现NullPointerException之类崩溃。...这里是在实现这个库过程Kotlin这些特性给我带来了方便: 1.扩展函数 Kotlin扩展函数功能使得我们可以为现有的类添加新函数,而不用修改原来类。 就拿安卓View来说。

1.2K20

支持MVVMBRVAH来了!

我们日常开发,用到列表是何其多,大量列表,就意味着大量适配器,更意味着更大量bean类、item布局复杂繁多逻辑,所以,有一套方便,快捷列表模板是何其重要。...(这段是废话,可以省略不看) 因为公司项目是MVVM模式,然后以前一个老Android同事写过一个控件,就是能很方便地将列表跟viewModel绑定在一起,使得代码精简很多。...多布局实现,item不实现MultipleItem调用方式 如何用databinding模式添加多个头部脚部,并且有各自事件 空布局及下拉刷新 侧滑删除 长按拖动 侧滑删除长按拖动相结合 ExpandableItem...load()回调,调用了load(getData())来加载数据(这边使用rxjava来模拟数据加载,现在项目基本都是用retrofitrxjava结合获取网络请求)。...在布局文件,还可以看到,引入了,在RecyclerView调用

1.1K20

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin

没错,这就是Kotlin语言Android项目,Java还是有区别的,建议了解了Kotlin语法再看文章会比较好,当然你也可以对照Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...上面不涉及到代码,所以JavaKotlin资源文件配置是差不多。 ② 布局样式 图片资源 ? ? ? ? ? ?...代码如下: //设置亮色状态栏模式 systemUiVisibility在Android11弃用了,可以尝试一下。...是不是立竿见影,这个效果一行代码解决问题还不用写工具类,完全调用系统方法,请注意Android10.0版本手机,也是自己用手机。...避免重复添加添加null设备进入列表,而点击item,根据绑定状态而定,绑定过蓝牙点击就是取消绑定,这里调用了一个方法。

4.3K20

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin

[在这里插入图片描述] 没错,这就是Kotlin语言Android项目,Java还是有区别的,建议了解了Kotlin语法再看文章会比较好,当然你也可以对照Android 蓝牙开发(扫描设备、...然后是styles.xml文件 [在这里插入图片描述] 上面不涉及到代码,所以JavaKotlin资源文件配置是差不多。...所以在Kotlin想到了更简单办法,直接在MainActivity修改状态栏样式。...[在这里插入图片描述] 是不是立竿见影,这个效果一行代码解决问题还不用写工具类,完全调用系统方法,请注意Android10.0版本手机,也是自己用手机。...避免重复添加添加null设备进入列表,而点击item,根据绑定状态而定,绑定过蓝牙点击就是取消绑定,这里调用了一个方法。

3.9K10

RecyclerView】 十三、RecyclerView 数据更新 ( 移动数据 | 数据改变 )

文章目录 一、移动数据 二、数据改变 三、完整代码示例 四、RecyclerView 相关资料 一、移动数据 ---- 移动数据 : 调用 RecyclerView.Adapter void notifyItemMoved..., 强制要求任何观察者对象去呈现所有存在 item 条目结构 , 这些数据可能已经失效 ; 布局管理器 LayoutManager 会强制所有数据重新绑定 , 并重新读取所有可视组件布局 ; 如果适配器调用了本方法..., 通知数据发生了改变 , RecyclerView尝试去 为适配器 同步可见结构性改变事件 ; 这样有助于动画可视化对象持续 , 但是单独 item 元素组件需要重新被绑定 ; 代码示例...; * * 如果适配器调用了本方法 , 通知数据发生了改变 , RecyclerView尝试去 为适配器 同步可见结构性改变事件 ;...布局获取 RecyclerView RecyclerView recycler_view = findViewById(R.id.recycler_view); /

3.2K00

Android MVI框架搭建与使用

Intent 意图,这个Activity意图要区分开,觉得说成是行为可能更妥当,表示去做什么。 多说无益,我们还是进入实操环节吧。...Retrofit一开始是支持Gson转换,后面增加了MoShi转换,Moshi拥有出色Kotlin支持以及编译时代码生成功能,可以使应用程序更快更小。...① 列表适配器   在创建适配器之前首先我们需要创建一个适配器所对应item布局,在layout下新建一个item_wallpaper_rv.xml,代码如下图所示: <?...initView()函数是控件一些配置,比如给RecyclerView添加布局管理器设置适配器,给按钮添加点击事件,在点击时候发送意图,发送意图被MainViewModelmainIntentChannel...observeViewModel()函数是对状态收集,在状态为Loading,隐藏按钮,显示加载条,然后网络请求会有结果,如果是成功,则在UI上隐藏按钮和加载条,显示列表控件,并添加数据到适配器

3.1K40

RecyclerView】 十一、RecyclerView 数据更新 ( 删除单条数据 | 批量删除数据 )

文章目录 一、删除单条数据 二、批量删除数据 三、完整代码示例 四、RecyclerView 相关资料 一、删除单条数据 ---- 删除单条数据 : 调用 RecyclerView.Adapter ...: 当前 RecyclerView 列表中被移出 item 元素索引 , 也就是说之前数据集合中被移出数据索引 ; 注意 : 调用该方法后 , 只会刷新与该位置相关 item 元素 , 不会刷新其它元素..., 可以自己实现 ; 二、批量删除数据 ---- 批量删除数据 : 调用 RecyclerView.Adapter void notifyItemRangeInserted(int positionStart...+ itemCount 之间这几个元素 , RecyclerView 其它 item 元素不变 ; 代码示例 : 删除前 3 个数据 , 通知适配器 , 原数据集中第 0 个元素开始...布局获取 RecyclerView RecyclerView recycler_view = findViewById(R.id.recycler_view); /

3.3K00

Android BaseQuickAdapter3.0.4版本二级列表使用及遇到问题

,使用版本是2.9.4,在使用中发现当二级列表展开时对子列表数据进行操作后,列表展开闭合显示数据会异常。...因为当时项目比较急,3.0版本用法原来完全不一样了,加上这个问题不大,所以就没再处理,现在抽出空来就想试试3.0版本实现方式,毕竟作者说3.0使用kotlin重写了不少,并解决了一些2.0版本...实现效果 ‍上图中可以看出,在展开列表删除明细操作后,数据显示就异常了,这个是在2.X版本中出现问题,现在3.0里面还是有这个情况。...代码实现 微卡智享 在2.x版本,使用多级列表BaseMultiItemQuickAdapter,定义类要继承自MultiItemEntity,现在3.0版本使用是BaseNodeAdapter...get() = Bodys } 03 adapter适配器 DataAdatper适配器继承自BaseNodeAdapter,使用NodeProvider将一级列表Head二级列表Body分开写,代码看起来也方便些

2.3K30

Android Material Design系列之RecyclerViewCardView

ItemAnimator:ItemAnimator简单来说是会根据适配器上收到相关通知去动画显示组件修改,添加删除等。它会自动添加移除item动画。自带默认效果也不错,已经非常好了。...如何用呢?这里就不过多介绍了,因为关于RecyclerView使用,去年很早时间就写过一篇文章。...建议大家参考: Android新组件RecyclerView介绍,其效率更好(可点击) 更多推荐: 偷懒新姿势,打造属于RecyclerView万能适配器AdapterViewHolder 一种新...AdapterActivity全部代码太多,而且微信对代码支持不是很好,就不贴出来了,想看代码去下载demo就可以了。...conentPadding:卡片布局内容之间距离 效果图实例代码 效果图如下: ?

2K80

为什么说Flutter让移动开发变得更好?

让我们Android构建此列表所需步骤开始: 用XML创建list-item布局文件 创建一个适配器来绑定视图并设置数据 为列表创建布局(可能在Activity或Fragment) 填充Fragment.../Activity列表布局 在Fragment / Activity创建适配器,布局管理器等实例 在后台线程上网络下载电影数据 回到主线程设置适配器项目 现在需要考虑保存恢复列表状态等细节...这两个类与API调用结合起来会有以下结果: 这貌似太简单了……现在有没有感觉到用Flutter创建列表很容易,继续探索吧。 下一步我们尝试稍微复杂布局。...前面太容易了,决定扩展应用程序,合并电视节目。几个小时后也顺利完成了。该应用程序包含了电影电视节目,并且开发过程没有遇到任何困难。...不再有多余样板代码 。 既然两个app功能几乎一样,就比较好奇两种不同语言实现代码量。 那么应该如何进行对比?(免责声明:Flutter版本还没有实现持久化,原生代码也很乱)。

2K10

Android 天气APP(三十二)快捷切换常用城市

前言   在2021年正式到来之前再更新几篇天气APP文章,说实话现在对于这个APP更新速度是比较缓慢,一方面有工作在进行,同时在写其他文章,其次正在使用Kotlin语言重写天气APP,...然后在MainActivity绑定控件 @BindView(R.id.rv_change_city) RecyclerView rvChangeCity;//点击切换常用城市 再创建两个变量用于控制是否显示是否展开常用城市列表...这里判断了一下是否为定位城市返回,是的话就添加到数据库,当然也不能重复添加数据,因此还需要判断一下。...然后你还需要在initData调用loadingCommonlyUsedCity方法。 ?...四、修改UI   因为是点击城市触发常用城市列表判断处理,因此之前代码需要修改一下,有两处,在initData ? 在onReceiveLocation方法 ?

82210

Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

显示数据 九、源码 前言   在日常开发,最常用于展示数据形式就是列表,你会看到各种各样列表,比如图片列表、视频列表,联系人列表,而在RecyclerView出来之前列表开发是使用ListView...正文   在上一篇文章讲述了怎么使用RoomMMKV去管理本地数据,本文将是不一样介绍方式,因为会页面打交道比较多,所以会比上一篇更有意思,起码是这么觉得。...下面我们写一个列表适配器item布局,在layout下新建一个item_wall_paper.xml文件,里面的代码我们先不写,先去写一个样式,在themes.xml文件(老版本AS是styles.xml...版本升级迁移   在AppDatabase增加如下代码,用于数据库版本升级迁移,这里是新增了一个迁移对象,构建迁移对象版本,1到2,然后执行一段SQL语句,该语句用于创建一个新表。...,如下图所示: 这里修改了@Database注解内容,增加了新版本升级到2,同时在构建数据库时候增加一个迁移,最后增加wallPaperDao抽象方法,方便使用地方直接去调用

2K20

Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

显示数据 九、源码 前言   在日常开发,最常用于展示数据形式就是列表,你会看到各种各样列表,比如图片列表、视频列表,联系人列表,而在RecyclerView出来之前列表开发是使用ListView...正文   在上一篇文章讲述了怎么使用RoomMMKV去管理本地数据,本文将是不一样介绍方式,因为会页面打交道比较多,所以会比上一篇更有意思,起码是这么觉得。...下面我们写一个列表适配器item布局,在layout下新建一个item_wall_paper.xml文件,里面的代码我们先不写,先去写一个样式,在themes.xml文件(老版本AS是styles.xml...版本升级迁移   在AppDatabase增加如下代码,用于数据库版本升级迁移,这里是新增了一个迁移对象,构建迁移对象版本,1到2,然后执行一段SQL语句,该语句用于创建一个新表。...,如下图所示: 这里修改了@Database注解内容,增加了新版本升级到2,同时在构建数据库时候增加一个迁移,最后增加wallPaperDao抽象方法,方便使用地方直接去调用

2.6K10

Jetpack 系列之Paging3,看这一篇就够了~

前言 许久没有更新Jetpack系列文章了,本篇文章为大家分享分页库Paging3使用,如果你还没有看过Jetpack其他文章,可以移步至链接: Android JetPack系列文章 ,持续更新...通过上图我们也可以清晰看出来,Paging在仓库层、ViewModelUI层都有具体表现,接下来我们通过一个示例来逐步讲解Paging是如何在项目架构工作。...上 我们在View代码调用viewModelgetData方法,代码如下所示: val manager = LinearLayoutManager(this) rv_data.layoutManager...;而是对数据源进行操作,数据源变化会自动更新到列表,看到评论区很多朋友说如何操作item删除修改,这里我们使用最简单方式即可 对单个item修改 我们都知道RecycleView是没有直接监听...大致意思就是如果数据发生变化 必须创建新PagingData ,所以暂时也不知道如何可以在不重新请求情况下,在数据删除、新增后来刷新,如果你有好方案,欢迎赐教!

3.2K10

Jetpack 系列之Paging3,看这一篇就够了~

前言 许久没有更新Jetpack系列文章了,本篇文章为大家分享分页库Paging3使用,如果你还没有看过Jetpack其他文章,可以移步至链接: Android JetPack系列文章 ,持续更新...在架构使用图 通过上图我们也可以清晰看出来,Paging在仓库层、ViewModelUI层都有具体表现,接下来我们通过一个示例来逐步讲解Paging是如何在项目架构工作。...上 我们在View代码调用viewModelgetData方法,代码如下所示: val manager = LinearLayoutManager(this) rv_data.layoutManager...;而是对数据源进行操作,数据源变化会自动更新到列表,看到评论区很多朋友说如何操作item删除修改,这里我们使用最简单方式即可 对单个item修改 我们都知道RecycleView是没有直接监听...大致意思就是如果数据发生变化 必须创建新PagingData ,所以暂时也不知道如何可以在不重新请求情况下,在数据删除、新增后来刷新,如果你有好方案,欢迎赐教!

1.8K20
领券