首页
学习
活动
专区
工具
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

Android RecyclerView: 如何实现触摸拖放功能

引言在现代应用程序,用户交互性是提供丰富用户体验关键因素。RecyclerView作为Android处理列表网格布局强大组件,支持多种交互,包括拖放排序。...本文指导您如何RecyclerView实现拖放功能,使用户能够通过长按拖动来重新排序列表项,用Kotlin实现长按拖放操作为了为RecyclerView添加长按拖放功能,我们将通过自定义ItemTouchHelper.Callback...来精确控制拖动行为,涉及重写onMove方法getMovementFlags方法拖动排序逻辑onMove:此方法在拖动操作期间被调用,用于交换列表位置,并更新适配器数据源。...使用Collections.swap交换元素在列表位置。调用notifyItemMoved通知RecyclerView元素已移动。...结语通过上述步骤,可以轻松地在Android应用RecyclerView实现拖放排序功能。谢谢大家阅读,如果您觉得这篇文章对您有所帮助,请给我点赞支持,非常感谢: )

16020

一次使用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.2K40

安卓常用控件

准备数据: 准备一个数据源(如数组或列表)。 创建适配器: 使用适配器将数据绑定到 ListView。 设置适配器: 将适配器设置到 ListView 上。...RecyclerView RecyclerView 是一个更灵活高效列表控件,可以替代 ListView。它支持布局管理器视图持有者(ViewHolder)模式。...使用步骤 定义布局: 创建一个包含 RecyclerView 布局。 创建适配器: 实现 RecyclerView.Adapter,定义数据视图绑定逻辑。...="match_parent" android:id="@+id/recyclerView"/> 在 Activity 中使用 RecyclerViewkotlin 复制代码 val recyclerView...通过合理地使用这些控件,可以开发出功能强大且用户体验良好应用程序。希望这篇博客能够帮助你更好地理解使用Android控件,如果有任何问题或想法,欢迎在评论区讨论!

7210

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.4K00

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方法 ?

82610

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
领券