美文网首页开发中用到的数据结构的总结
Pair(搭配ArrayList)数据结构的使用实例

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

作者: ahking17 | 来源:发表于2017-05-12 17:18 被阅读207次

    在一些开发场景下,既需要已键值的方式存储数据列表,还需要在输出的时候保持和插入数据的顺序不变。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.---------

    相关文章

      网友评论

        本文标题:Pair(搭配ArrayList)数据结构的使用实例

        本文链接:https://www.haomeiwen.com/subject/tyqtxxtx.html