Collections.binarySearch用法

原创 2016年08月31日 12:30:51

项目中的一个需求,APP留言列表需要锚点功能,点击留言要跳转到留言列表的具体位置,Collections工具类提供了二分法查找的实现

public class DirectGoodMessageVo extends JrdsGoodMessage implements Serializable,Comparable<DirectGoodMessageVo>{

    private Boolean sex;

    private String smallIcon;

    private String bigIcon;

    private String listType;

    private Integer start;

    private Integer end;

    private Long stationMessageId;

    public Long getStationMessageId() {
        return stationMessageId;
    }

    public void setStationMessageId(Long stationMessageId) {
        this.stationMessageId = stationMessageId;
    }

    public Integer getStart() {
        return start;
    }

    public void setStart(Integer start) {
        this.start = start;
    }

    public Integer getEnd() {
        return end;
    }

    public void setEnd(Integer end) {
        this.end = end;
    }

    public String getListType() {
        return listType;
    }

    public void setListType(String listType) {
        this.listType = listType;
    }

    public String getSmallIcon() {
        return smallIcon;
    }

    public void setSmallIcon(String smallIcon) {
        this.smallIcon = smallIcon;
    }

    public String getBigIcon() {
        return bigIcon;
    }

    public void setBigIcon(String bigIcon) {
        this.bigIcon = bigIcon;
    }

    public Boolean getSex() {
        return sex;
    }

    public void setSex(Boolean sex) {
        this.sex = sex;
    }

    /**
     * 序列化
     */
    private static final long serialVersionUID = -629484448752499648L;
    **//实现比较规则**
    public int compareTo(DirectGoodMessageVo o) {
        Long diff = this.getCreated().getTime() - o.getCreated().getTime();
        if(diff > 0)return -1;
        else if(diff < 0) return 1;
        else return 0;
    }
}
//查询对象所在的集合msgList 
List<DirectGoodMessageVo> msgList = directGoodMessageService.getDirectGoodMessageList(directGoodMessageVo);
//要查的对象
DirectGoodMessageVo message = directGoodMessageService.getMessageById(messageId);
            List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
            for (DirectGoodMessageVo dvo : msgList) {
                Map<String, Object> map = new HashMap<String, Object>();
                if (dvo.getInitiator() != null) {
                    map.put("msgFromUserName", dvo.getInitiator());
                }
                if (dvo.getReplyor() != null) {
                    map.put("msgToUserName", dvo.getReplyor());
                }
                if (dvo.getInitiatorId() != null) {
                    map.put("msgFromUserID", dvo.getInitiatorId());
                }
                if (dvo.getReplyorId() != null) {
                    map.put("msgToUserID", dvo.getReplyorId());
                }
                if (dvo.getMessage() != null) {
                    map.put("msgContent", dvo.getMessage());
                }
                if (dvo.getCreated() != null) {
                    map.put("msgTime", HandlerUtil.getShowTime(dvo.getCreated()));
                }
                map.put("icon", Commons.PIC_DOMAIN + dvo.getSmallIcon());
                if(userId != null)
                map.put("isMine", userId.equals(dvo.getInitiatorId()));
                map.put("msgID", dvo.getId());
                map.put("source", dvo.getSource());
                resultList.add(map);
            }
            //锚点下标
            int index = Collections.binarySearch(msgList, message);
            //返回锚点 
            responseBody.setAnchor(index + 1);
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

(77)Collections类:sort、max、binarySearch、fill、replaceAll、reverse

如题,二分搜索方法体写法、fill变形:替代区间上的元素

集合框架—— Collections之sort()、max()、binarySearch()方法

/* 集合框架的工具类。 Collections:集合框架的工具类。里面定义的都是静态方法。 Collections和Collection有什么区别? Collection是集合框架中的一个顶层接口...

Collections.binarySearch用法

DiversityScoreMapping> int java.util.Collections.binarySearch(List> list, DiversityScoreMapping key...

Java之集合框架图及 Collection和Collections的区别及用法总结

Java中Collection和Collections的区别: 1、Java集合框架图: 2、Collection接口:   java.util.Collection是一个集合接口,其中...

zip,collections.defaultdict lambda,csv.DictReader用法简介,及subprocess.call注意事项(需要使用chmod将待执行的文件变为可执行)

定义:zip([iterable,...])        zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些t...

Collections用法整理

Collections (java.util.Collections) 工具类包含了很多有关集合操作的静态方法,使用这些方法能帮我们简化代码。 本文将整理Collections工具类的一些基本方法。...

java collections.sort的用法实例

用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: /** - 根据order对User排序 */public cl...

Collections.unmodifiableMap 用法解析

返回指定映射的不可修改视图。 通俗的讲就是:产生一个只读的Map,当你调用此map的put方法时会抛错。 public static Map unmodifiableMap(Map m) ...

集合工具类Collections用法(API简略翻译)

翻译了下Collections的API文档。

二分搜索BinarySearch

  • 2015-04-12 21:24
  • 983B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)