美文网首页
List分组请求数据

List分组请求数据

作者: Micrason | 来源:发表于2016-08-17 14:27 被阅读26次

现在有这样一种需求,假如有一个List,List中存放未知数量的字符串代码,例如:“000007.SZ”,我们希望通过List中的字符代码来获取相对应得股票当前价信息,而当前接口一次最多接受100个股票代码的请求,那么我们如何对List中的所有股票代码的数据请求完成,并无差错的将所有的股票的当前价信息一一保存并对应呢?

1、首先我们得对List中的股票代码进行分组,每100个为一组,确定相分组的结果:

    private int getGroupNumber() {
        int listSize = list.size();
        int group;
        if (listSize % 100 == 0) {
            group = listSize / 100;
        } else {
            group = listSize / 100 + 1;
        }
        return group;
    }

2、将group返回之后,我们使用循环获取各组的股票代码信息并组成新的String,以便获取相对应股票的当前价。

    //分组获取股票代码集并请求数据
    private void getPriceAndupDown() {
        int group = getGroupNumber();
        for (int i = 0; i < group; i++) {
            String codes;
            if (i * 100 + 99 < list.size()) {
                codes = getCode(i * 100, (i * 100) + 99);
            } else {
                codes = getCode(i * 100, list.size());
            }
            initRealDatas(i * 100, codes);
        }
    }
    //根据索引获取股票代码集
    private String getCode(int start, int end) {
        String codes = "";
        for (int i = start; i < end; i++) {
            String code = list.get(i).Zqdm;
            if (code.subSequence(0, 1).equals("6")) {
                codes += code + ".SS,";
            } else {
                codes += code + ".SZ,";
            }
        }
        return codes.substring(0, codes.length() - 1);
    }

3、在进行真实的价格请求时应注意List的对应关系。

    private void parseRealDatas(int start, String codes) {
        for (int i = start; i < codes.split(",").length; i++) {
            //解析数据,此处省略
            ...
            if (i < list.size()) {
                //price由上面数据解析而来
                list.get(i).price = price;
            }
        }
    }

4、最后进行数据刷新就可以了,一般来说我们数据都是放在ListView/RecycleView中展示的,那么问题来了,在进行分组请求时,由于网络等不确定性因素,我们什么时候进行数据的刷新 notifyDataSetChanged() 操作呢?当然,从某种程度上来讲,我们不管其是否分组,只要数据获取成功就进行刷新操作,这样并没有什么不妥。

相关文章

  • List分组请求数据

    现在有这样一种需求,假如有一个List,List中存放未知数量的字符串代码,例如:“000007.SZ”,我们希望...

  • 浅析guava容器multimap

    在日常开发中我们通常有需要对 List 容器进行分组的情况,比如对下面的list数据根据name字段来进行分组: ...

  • http消息体

    HTTP请求数据: HTTP请求信息由3部分组成: ① 请求方法 URI 协议/版本② 请求头(Request H...

  • iOS Daily Tip - HTTP请求/响应报文结构

    HTTP请求报文 一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据(请求正文)。 请求行请求行...

  • java8 特性 - groupingBy

    java8 将 list 里的数据分组。返回 map 集合。这里以一个简化了的订单类来说明如何分组数据实体 初始化...

  • [转] HTTP请求/响应报文结构

    HTTP请求报文 一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。 1.请求行 请求行由请求...

  • flutter json to jsonList

    数据格式model类 网络请求返回的数据格式 list接收方式

  • 【实体类】权限分组

    字段 分组id 分组名 分组描述名 分组描述信息 权限list 懒

  • Volley源码学习6-Request类

    通常来说一个HTTP请求报文由请求行、请求报头、空行、和请求数据4个部分组成。 请求行 请求行由请求方法,URL字...

  • 有关Http

    一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据组成 请求行 请求行由请求方法,URL字段和H...

网友评论

      本文标题:List分组请求数据

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