官方文档:
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是要重点说一下,看源码:
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);
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"
情侣社交应用P
air最近推出了一款
Android客户端。
和iOS客户端一样,新发布的P
air for
Android版打造了一个私密分享的时间轴,允许情侣之间进行短信、照片、视频和地点的共享。
P
air是发散小圈子社交应用Path的理念所开发的一款应用。和Path不同,P
air并不是和一小组用户分享个人信息更新,而是面向最小的社交网络,即只和自己唯一的人生伴侣分享信息。
GitHub:https://github.com/Blankj/AndroidUtilCode
使用方法:implement 'com.blankj:utilcode:1.23.4'
Activity 相关 -> ActivityUtils.java -> Demo
AdaptScreen 相关 -> AdaptScreenUtils.java -...
Ex_DA_SHU:
一、H5全景图-朋友圈全景图-720°全景-VR -----工具使用
wwg4215: