官方文档: 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

官方文档:https://developer.android.com/reference/android/util/Pair.html 机缘巧合看见了Pair这个类,网上介绍不多(可能是因为太简单了吧) 于是自己看了下源码。特此记录在android.util包中有这么一个类,他特别像小时候吃的双棒冰棍(暴露
在某些情况下,既需要已键值的方式存储数据列表,还需要在输出的时候保持顺序。HashMap满足前者,ArrayList则满足后者,再不打算去多做修改且数据型相对简单时,可以选择Android提供的一种工具:Pair(搭配ArrayList)。 1. Pair 实例 Pair生成实例的方式有两种: Pair pair = new Pair(1, "3"); Pair pair = Pair.create("1", 3); 实际上方式二在内部的实现只是对方式一的调用: public sta
Pair<Integer,String> pair=new Pair<>(1,"20"); //方法2 Pair<Integer,String> pair2=Pair.create(1,"20"); 方法和属性 pair.first pair.second equals 进行的是值比较 android.support
Container to ease passing around a tuple of two objects. This object provides a sensible implementation of equals(), returning true if equals() is true on each of the contained objects.
本文讨论一种称为Pair的数据结构,该结构提供了一种处理简单的键与值关联的简便方法,当我们要从一个方法返回两个值时,对特别有用。 jdk库中提供了Pair的简单实现,除此之外,第三方库(例如Apache Commons和Vavr)在各自的API中也提供了似的功能。 1、jdk中的实现 1)javafx.util.Pair: import javafx.util.Pair; Pair<Integer, String> pair = new Pair<>(1, "One"
情侣社交应用Pair最近推出了一款Android客户端。 和iOS客户端一样,新发布的Pair for Android版打造了一个私密分享的时间轴,允许情侣之间进行短信、照片、视频和地点的共享。 Pair是发散小圈子社交应用Path的理念所开发的一款应用。和Path不同,Pair并不是和一小组用户分享个人信息更新,而是面向最小的社交网络,即只和自己唯一的人生伴侣分享信息。
GitHub:https://github.com/Blankj/AndroidUtilCode 使用方法:implement 'com.blankj:utilcode:1.23.4' Activity 相关 -&gt; ActivityUtils.java -&gt; Demo AdaptScreen 相关 -&gt; AdaptScreenUtils.java -...
Ex_DA_SHU: 原来真的是images的问题,我说怎么自动下载几个label为latest的镜像。。看了下byfn.sh的源码,默认label为latest,但可以用-i指定label名,直接 ./byfn.sh -m up -c mychannel -i 1.0.0 一、H5全景图-朋友圈全景图-720°全景-VR -----工具使用 wwg4215: 导出来后的index.html 进去怎么是黑的