Android学习之Pair类 (android.util.Pair )
官方文档:https://developer.android.com/reference/android/util/Pair.html
原文地址:
http://blog.csdn.net/qq_24889075/article/details/52152447
http://www.jianshu.com/p/a79ecd711a7c
机缘巧合看见了Pair这个类,网上介绍不多(可能是因为太简单了吧) 于是自己看了下源码。特此记录
在android.util包中有这么一个类,他特别像小时候吃的双棒冰棍(暴露年龄了),他叫Pair
首先看测试代码
Pair pair = new Pair(1, 2);//第一种创建方式
Log.e("aa", pair.first.toString());
Log.e("aa", pair.second.toString());
Log.e("aa", pair.equals("1") + "");
Log.e("aa", pair.equals(1) + "");Log.e("aa", "------------------------");
Pair pair2 = Pair.create("1", 2);//第二种创建方式
Log.e("aa", pair2.first.equals("1") + "");
Log.e("aa", pair2.first.equals(1) + "");
Log.e("aa", pair.equals(1) + ""); Log.e("aa", "------------------------");
Log.e("aa", pair.equals(pair2) + "");
Log.e("aa", pair.equals(pair) + "");
打印的Log
Pair 的 first是获取第一个位置的数据,second是获取第二个位置的数据。
equals是要重点说一下,看源码:
//android.util下的源码public boolean equals(Object o) {if (!(o instanceof Pair)) {return false;}Pair<?, ?> p = (Pair<?, ?>) o;return Objects.equal(p.first, first) && Objects.equal(p.second, second);}//这个是android.support.v4.util下的源码public boolean equals(Object o) {if (!(o instanceof Pair)) {return false;}Pair<?, ?> p = (Pair<?, ?>) o;return objectsEqual(p.first, first) && objectsEqual(p.second, second);}private static boolean objectsEqual(Object a, Object b) {return a == b || (a != null && a.equals(b));}
根据源码和上面打印的Log可以看出对比的是Pair对象内容,要注意的是这个equals不是java.lang包下的equals 。
Pair也可以添加泛型,比如:
Pair<Boolean, String> pair;
Pair<Integer, Double> pair2;
Pair<Character, Float> pair3;
是的,不能添加Java的八大类型
挺好玩的一个类,适当使用能省不少事,使用场景自己脑补 (^o^)/。
原文地址:
http://blog.csdn.net/qq_24889075/article/details/52152447
http://www.jianshu.com/p/a79ecd711a7c
Android学习之Pair类 (android.util.Pair )相关推荐
- Android学习笔记07---查看Android虚拟机输出的错误信息与如何部署应用到自己的真实手机
Android学习笔记07---查看Android虚拟机输出的错误信息
- Android学习笔记----解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题
Android学习笔记----解决"com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 6553 ...
- android 软键盘工具类,Android开发之弹出软键盘工具类简单示例
本文实例讲述了Android开发之弹出软键盘工具类.分享给大家供大家参考,具体如下: package com.maobang.imsdk.util; import android.content.Co ...
- android m权限工具类,android M权限适配,简单工具类
很简单没什么说的, 因为项目大了,不能轻易引入第三方库,同时确实也没必要为了适配下权限就引入一个库. 这里写了个处理权限的工具类(部分借鉴的,勿喷),不嫌弃的话拿去! 用法: 1.申请权限: Perm ...
- [Android学习笔记四] 自定义Android组件之组合方式创建密码框组件
Android中所有控件(也称组件)都继承自adnroid.view.View类,android.view.ViewGroup是View类的重要子类,绝大多书的布局类就继承自ViewGroup类. 参 ...
- android语音播放工具类,Android开发之MediaPlayer多媒体(音频,视频)播放工具类
本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import ...
- Android学习笔记:对Android应用进行单元测试
第一步:在AndroidManifest.xml中加入如下两段代码: [java] view plaincopyprint? <manifest xmlns:android="h ...
- Android生命周期工具类,Android倒计时工具类
多谢touch_ping 的回应. 原来api有这个类 android.os.CountDownTimer , 具体实现很下面的差不多. import android.content.Contex ...
- android gps定位工具类,Android原生GPS和网络定位工具类
在应用开发中我们常常需要网络获取位置的方法,这里做一个工具类的封装,使用的是Android原生定位,包含两种方式,一种是原生GPS一种是网络定位的封装实现: 工具类代码如下所示: package co ...
最新文章
- 重上热搜!北师大教授:给非洲留学生1年10万奖学金真的不算多!
- 给接口自动化测试框架增色,实现企业微信测试报告
- 凭借这份Java面试题集,java上传文件夹
- 【FI学习笔记】客户发票收款清账
- VTK:场景边界SceneBounds用法实战
- FPGA边沿检测Verilog实现(包含上升沿,下降沿,双边沿)
- instanceof封装
- 你关心才值得分享 | K8S网络安全之访问控制技术实践
- php hasmany,浅谈laravel orm 中的一对多关系 hasMany
- 简明 Python 教程学习笔记_7_文件操作(os、shutil、pathlib )
- linux 视频编辑 ffmpeg,ffmpeg转码视频真的好用!(ffmpeg的简单使用方法)
- 【数据结构与算法】实践 构造病种树结构
- java代码加载_java类中代码加载顺序
- 在java语言中_类间的继承关系是_【填空题】在Java程序里类之间的继承关系只能是________。...
- c语言如何写地图,自己用C语言写的扫雷地图
- Windows phone应用开发[15]-辅助工具
- ssh 远程连接详解--(linux运维09)
- 将微信和支付宝支付的个二维码合二为一
- vb6.0中的Private Declare Function的含义
- 通信教程 | 波特率、比特率、通信速度的区别
热门文章
- 关于定量控制污水流量计的安装、维护与定期比对及计量
- C# textbox快捷键添加横杠
- 2020年戴森设计大奖国际20强揭晓
- 上蔡一高2021高考成绩查询,上蔡一高高考录取名单1
- 6个免费PPT模板网站,简直不要太好用
- 国际会议查询方式和相关会议
- ORA-00600: 内部错误代码, 参数: [19004], [], [], [], [], []
- 人工学习之预测2023年考研英语答案分布
- android mmm 编译指令,mm和mmm编译说明
- 怎样用postman做接口测试,一篇足矣