Pair(搭配ArrayList)数据结构的使用实例

ahking17IP属地: 北京
0.15字数 288

在一些开发场景下,既需要已键值的方式存储数据列表,还需要在输出的时候保持和插入数据的顺序不变。HashMap满足前者,ArrayList则满足后者,这时候就可以选择Android提供的一种工具类:Pair(搭配ArrayList)。
当然,如果仅仅是为了保证数据的插入和输出顺序一致的话, 可以选择使用LinkedHashMap<K,V>, 但我们知道, Map要求Key不能重复, 如果我们还准许Key可以重复的话, 就只能选择使用"Pair(搭配ArrayList)"这种结构了.

eg.

List<Pair<String, String>> list = new ArrayList<Pair<String, String>>();
1. Pair 实例

Pair生成实例的方式有两种:

Pair pair = new Pair(1, "3");

or

Pair pair = Pair.create("1", 3);

实际上方式二在内部的实现只是对方式一的调用:

public static <A, B> Pair <A, B> create(A a, B b) {
    return new Pair<A, B>(a, b);
}

同时可以看出,Pair接收的数据类型是两个泛型,因此可以传入自定义的实体类。

2. 如何取值

Pair内部数据的存储如下:

public class Pair<F, S> {
    public final F first;
    public final S second;
    ...
}

仅仅使用了两个public的变量,因此在取值时可以直接取用。

int key = pair.first;
String value = pair.second;
3. 实际使用
            List<Pair<String, String>> list = new ArrayList<Pair<String, String>>();

            Delivery[] deliveries = mConfigBean.dat.deliveries;
            for(int i=0;i<deliveries.length;i++) {
                String source = deliveries[i].source;
                String placementKey = deliveries[i].placementKey;
                if(!TextUtils.isEmpty(source)) {
                    list.add(new Pair<String, String>(source, placementKey));
                }
            }

---------DONE.---------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
3人点赞
ahking17android 开发工程师<br>
总资产135共写了8.2W字获得288个赞共143个粉丝

推荐阅读更多精彩内容