Collections自定义List排序规则

Collections自定义List排序规则

        //这里的顺序,是我自己定义的一个List<String>
        String[] regulation = {"jams","buke","rose","lua"};
        final List<String> regulationOrder = Arrays.asList(regulation);
        String[] ordered = {"rose","jams","lua","rose","buke","jams","rose","buke","jams"};
        List<String> orderedList = Arrays.asList(ordered);
        Collections.sort(orderedList, new Comparator<String>()
        {
            public int compare(String o1, String o2)
            {
                int io1 = regulationOrder.indexOf(o1);
                int io2 = regulationOrder.indexOf(o2);
                return io1 - io2;
            }
        });
        System.out.println(orderedList);

原文地址:https://www.cnblogs.com/yoci/p/10239898.html

时间: 2024-10-13 22:47:03

Collections自定义List排序规则的相关文章

九度oj 题目1069:查找学生信息 续: 自定义sort排序规则

上一题中用到了二分查找,而二分查找的前提条件就是原数据有序,故需要先进行排序. 考虑用stl 中的sort函数对数据进行排序:由于不是基本数据类型而是自定义结构体不能自动排序,就需要给出排序规则. 方法有两种: 1.写  cmp函数 bool cmp(stu a,stu b){ return strcmp(a.stu_no,b.stu_no)<0 ; } 然后调用sort(buf,buf+n,cmp); 2.直接定义该结构体的小于运算符(sort只需要利用小于关系排序)来说明排序规则 struc

关于vector中自定义sort排序规则

本文是从我一个实际的程序摘出来,因此没有太多的叙述性的东西 首先呢 sort需要一个头文件  #include<algorithm> 这种排序主要针对的是自定义的vector类型 如: typedef struct AD {     int len;     string name; }ad; vector<ad> adtemp; 对adtemp排序,首先需要自己设定排序规则,当然了还是根据int型变量比较好排序啦,因为是自定义结构体所以方便和实用为关键哈 ok 排序规则 //这是

数据库字符集与排序规则(Character Set And Collation)

数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). (注意:Collation原意为校对,校勘,但是根据实际使用场景,觉得还是翻译为排序规则比较合适) 在绝大部分情形中,使用何种字符集和排序规则决定于服务器,数据库和表的级别,一般SQL操作不必关心这些. 以下操作均以MySQL为例. 查看数据库支持的字符集与排序规则 查看字符集: SHOW CHARACTER SET; 部分结果: 查看排序规则:(后缀"_cs&

回调函数,用户定义的排序规则

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>范例6-3</title>

Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

Mysql中的排序规则utf8_unicode_ci.utf8_general_ci的区别总结 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a' 那么在utf8_bin中你就找不到 txt

SQL Server 问题之 排序规则(collation)冲突

一.写在前面 最近公司进行开发环境升级,数据库也准备了一个新的服务器,一切准备好后开始数据迁移,采取的方式为对现有Database(现有服务器Windows Server 2003 + SQL Server 2005)进行Back up,然后在新服务器(Windows Server 2008 R2 + SQL Server 2008 R2)上再Restore Databse,一切似乎挺顺利的.但是当从Web Server开始访问的时候出现错误Cannot resolve the collatio

sqlserver之排序规则和ETL不支持sqlserverdatetime2的问题

sqlserver的排序规则大概分为Windows 排序规则和 SQL Server 排序规则.数据在安装的时候,默认不设置会默认为SQL_Latin1_General_CP1_CI_AI.数据库在创建的时候,如果不设定会使用数据默认的排序规则,此外,还可以对表中的列设定排序规则. 这里只是记录一下最近遇到这类问题时的一些注意事项. 首先SQL_Latin1_General_CP1_CI_AI对应的1252,而Chinese_PRC_CI_AS对应gbk的936.如果要正确的保存中文,则需要在建

关联容器执行器指定排序规则

// // main.cpp // setcmp // // Created by IDM-PKU on 14-9-6. // Copyright (c) 2014年 PKU. All rights reserved. // #include <iostream> #include <set> #include "print.hpp" using namespace std; template <class T> class RuntimeCmp{

关于Lucene的自定义Sort排序

参考:http://blog.csdn.net/wxwzy738/article/details/8585786 使用Sort排序工具实现排序 Lucene在查询的时候,可以通过以一个Sort作为参数构造一个检索器IndexSearcher,在构造Sort的时候,指定排序规则. 调用sort进行排序的方法是IndexSearcher.search,例如: IndexSearcher.search(query,sort); 关于Sort类,在其内部定义了6种构造方法: public Sort()