Android Pair记录
来源:互联网 发布:阿里云服务器建站 编辑:程序博客网 时间:2024/06/16 16:47
Pair
Pair位于android.util包,根据字面意思一对也可以判断出该对象可以存放一对值,的确被猜中了,其有first和second两个成员。
使用
该类使用比较简单,测试代码如下
Pair pair = new Pair(1, 2);Pair pair2 = Pair.create("1", 2);Pair pair3 = new Pair(1,2);Log.i(TAG, pair.first.toString());Log.i(TAG, pair.second.toString());Log.i(TAG, pair.equals("1") + "");Log.i(TAG, pair.equals(1) + "");Log.i(TAG, pair2.first.equals("1") + "");Log.i(TAG, pair2.first.equals(1) + "");Log.i(TAG, pair.equals(1) + "");Log.i(TAG, pair.equals(pair2) + "");Log.i(TAG, pair.equals(pair) + "");Log.i(TAG, pair.equals(pair3) + "");
测试log
07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: 107-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: 207-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: false07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: false07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: true07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: false07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: false07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: false07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: true07-31 22:30:53.198 1351-1351/com.nan.lockscreen.test I/nan: true
源码
public class Pair<F, S> { //两成成员 public final F first; public final S second; //构造方法赋值 public Pair(F first, S second) { this.first = first; this.second = second; } //通过equals来比较两个Pair的相应位置的值,都为true则返回true @Override public boolean equals(Object o) { if (!(o instanceof Pair)) { return false; } Pair<?, ?> p = (Pair<?, ?>) o; return Objects.equals(p.first, first) && Objects.equals(p.second, second); } //create实际还是通过构造方法直接对first和second成员进行赋值 public static <A, B> Pair <A, B> create(A a, B b) { return new Pair<A, B>(a, b); }}
V4下的Pair
使用和上述Pair完全相同,其中equals方法虽然实现不是通过Object下的equals方法实现,但实现逻辑与其完全相同
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));}
使用ArrayList的有序功能和HashMap的键值对功能时,可以采取ArrayList和Pair搭配使用
Map<Integer,Object> map=new HashMap<>();List<Object> list=new ArrayList<>();//配合使用List<Pair<Integer,String>> sortList = new ArrayList<Pair<Integer, String>>();
阅读全文
1 0
- Android Pair记录
- android Pair
- android.util.Pair
- Android学习之Pair类 (android.util.Pair )
- pair
- pair
- Pair
- Pair
- pair
- 情侣社交应用Pair发布Android客户端
- Android记录
- android记录
- android 记录
- Android记录
- android 记录
- Android记录
- android 记录
- Code-Pair
- 图像处理18:透视变换
- Angular 实现类似博客评论的递归显示
- Vue之路之--Vue实例的一些理解(未完待续)
- sparksql 简单使用
- LiME + volatility2.4进行内存读取
- Android Pair记录
- Android关于中文url编码类似于%E5%8F%8C%E5%AD%90%E5%BA%A7
- poj 1033 Defragment 模拟+递归
- Neutron总结-Firewall as a Service(FWaaS)
- python爬虫学习第七天
- 第一章 实用R内置数据进行数据处理--笔记
- HDU-1848-组合博弈
- 割点和桥
- 排序与查找