这个问题也不算什么有技术含量的问题,不过我感觉还是有必要写篇博客记录,以免有人遇到和我一样的困扰,也是因为在网上搜索发现,没有多少文章说明这个如题的原因,可能是大多都没经历过这个问题,或者是感觉不值得一写。

背景:有一次在调试程序的时候,我打印List集合中的内容,但是发现打印出来的结果条数总是比List的size()方法返回值要小,重复了多少次都是一样,找了一会原因没找到,后来不了了之。

结果,没过多久,又遇到一样的情况:

这次的现象是我往集合中添加了重复的数据,然后打印发现无论重复数据添加多少,在logcat中打印的时候最多只能打印出两条,自然打印结果的总条数也比List的size方法要小,我想难道是List新加了去重的属性?但是如果去重为啥能显示两条?我尝试看了一下源码以及搜了一下, 很快推翻这个想法。

然后想,难道是Log本身加了新的特性,不能打印重复数据?然后我用System.out.print尝试打印,结果能正常打印,这就印证了我的假设,剩下就是找证据了。然后我就选择Log的一个方法点进去追sdk中的代码,结果追了几步就没法追了,因为只能看到下边截图中的情况,再往后找不到了。

最后,我只能搜索其他的文章了。结果,虽然这种文章很少,但确实已经有人写了,请参考:https://blog.csdn.net/lerous/article/details/109383985

简单说,就是从Android O之后Log在C代码层增加了类似于缓存的机制,同样的打印内容,只显示首尾两条,中间的不显示,但是会告诉你中间有多少条一样的数据。

下边这个图就是我不断的往List中添加同样的数据,然后遍历打印后进行过滤的结果,可以看到size一直在增加,但是到了size=2之后,每次只能打印两条数据。

然后不加过滤,或者加上过滤关键字chatty以后再看:

看红框中的日志信息,在首尾两条日志中有很明显的提示"identical xxx lines",也就是完全相同的有xxx行,加上已经打印的首尾两条日志,正好和size相等,这就解释了如题的疑问,这篇文章也就到此结束了,更具体的参考上述链接。

Android开发,使用Log打印日志,打印相同内容在Logcat中只能连续显示两次(遍历打印List中的内容,打印结果条数比List的size小)。相关推荐

  1. Android中当一行显示两个TextView时,第一个可“…”,而第二个必须显示全部

    在Android中当一行显示两个TextView时,第一个可"-",而第二个必须全部显示这种布局时: <RelativeLayout android:layout_width ...

  2. 开发板连续显示图片 | BAD APPLE 万耦中的二次元世界

    本文分享自中移OneOS微信公众号<万耦中的二次元世界!>,作者:小M哥. BAD APPLE原本是东方游戏里的一首歌曲,后来被加了一个MAD,由于MAD非常惊艳华丽,使得BAD APPL ...

  3. .Net语言 APP开发平台——Smobiler学习日志:如何快速实现类似于微信的悬浮显示二维码效果...

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 样式一 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的&qu ...

  4. 天啦撸!打印日志竟然只晓得 Log4j?

    空了的时候,我都会在群里偷偷摸摸地潜水,对小伙伴们的一举一动.一言一行筛查诊断.一副班主任的即时感,让我感到非常的快乐,略微夹带一丝丝的枯燥. 这不,我在战国时代读者群里发现了这么一串聊天记录: 竟然 ...

  5. [Android]Android开发入门之HelloWorld

    引言:在做Unity开发的时候,发现这么个问题,虽然Unity是跨平台的,能够进行Android,IOS,Web,PC等开发,但如果要实现一些稍微系统层的东西,还是需要通过通信,调用原系统的接口(自定 ...

  6. Android开发环境——Eclipse ADT相关内容汇总

     Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT相关 ...

  7. Android 开发总结大全

    *android 开发总结 框架,工具,流程 业余时间总结学习 代码框架总结 1. 可以将activity中基类保存每一个子类的Context,然后通过Application中的函数负责保存,任意时候 ...

  8. Android 开发小技巧(2)

    转自:农民伯伯: http://www.cnblogs.com/over140/ 常用代码 7.1   在当前Activity中启动另外一个Activity startActivity(new Int ...

  9. Android 开发调试工具

    Android 开发调试工具-ADB ADB的用途 在Android Studio中工作时,手机插口需要连接其他设备因此无法用线与电脑连接,因此可以利用Android Studio内嵌的命令台通过ad ...

最新文章

  1. java 桶排序_[图解] 桶排序
  2. nodejs+express整合kindEditor实现图片上传
  3. 51nod 1557 两个集合 (严谨的逻辑题)
  4. P3166-[CQOI2014]数三角形【GCD】
  5. python socket udp_python网络-Socket之udp编程(24)
  6. 用 Python 爬取了 14 年的福彩 3D 信息!彩民们,只能帮你们到这了
  7. LeetCode - 9. 回文数
  8. 01_6_SERVLET如何从上一个页面取得参数
  9. 搜索引擎:获取并处理mdx英汉词典文件为数据库
  10. 【神器】截图+贴图工具 Snipaste
  11. 摩尔庄园手游服务器链接不稳定,摩尔庄园手游公测常见问题解决方法一览
  12. Python基础 - 20210425 - 基础(命名规范,注解,基础语法)
  13. 【新书推荐】Interpretable Machine Learning with Python
  14. 网络与IO知识扫盲(一):Linux虚拟文件系统,文件描述符
  15. mysql优化 个人笔记 (mysql 主从复制 ) 非礼勿扰 -m11
  16. Oulipo HDU - 1686 (使用扩展kmp进行讨伐!)
  17. 【校招VIP】前端JS语言之语法相关
  18. openwrt路由器打印机服务器设置_openwrt路由器打印机服务器设置_TP-Link无线路由器打印机设置指南...
  19. Coursera | Applied Data Science with Python 专项课程 | Applied Machine Learning in Python
  20. 多个txt文件合并成一个文本

热门文章

  1. tomcat是否区分32位和64位
  2. Python在照片上添加水印的方法
  3. RabbitMQ的简要介绍
  4. 2019 ICPC NAC补题
  5. 在线招聘逐利,简历泄露的背后是对隐性价值的忽视
  6. Python 数据保存:为什么选用CSV格式? 怎么避免乱码?
  7. android job - 收藏集 - 掘金
  8. python如何控制传感器_在Python中单行写入传感器数据
  9. openstack octavia部署 ussuri U版
  10. LLVM PASS--虚函数保护