Android学习之Pair类 (android.util.Pair )
来源:互联网 发布:linux rc5.d 编辑:程序博客网 时间:2024/05/24 04:03
官方文档: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
0 0
- Android学习之Pair类 (android.util.Pair )
- android.util.Pair
- android Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- STL学习之pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- C++学习之Pair
- Android Pair记录
- 日常学习之 std::pair
- Java内存管理:深入理解Java内存区域
- 美好的十年工程师生涯
- Can "Upgrade" only to "WebSocket"
- 二叉搜索树与双向链表
- Linux 生产者和消费者问题
- Android学习之Pair类 (android.util.Pair )
- 二叉排序树
- myself/在控制台输出0到1万之间的所有素数
- 文章标题
- EditText禁止输空格
- 在mysql中修改表名的sql语句
- 学习笔记(三)——有用的Handler
- txt文档操作(导出和导入)
- notepad++怎么显示项目的目录树?