zoukankan      html  css  js  c++  java
  • 集合数据置顶

    1. 方案一
    // 测试
    List<Object> arrayList = new ArrayList<>();
    Collections.addAll(arrayList, 10, 11, 12);
    AryLi.AL(arrayList);
    
    // 输出: **10 11 12 2 3 4**
    
    
    // 方案一
    class AryLi {
        //TODO 方案一, 就是将新的集合添加在原有集合之前
        public static void AL(List list) {
            List list1 = new ArrayList();
            Collections.addAll(list1, 2, 3, 4);
    
    
            ArrayList list2 = new ArrayList();
            list2.addAll(list);
            
            for (int i = 0; i < list1.size(); i++) {
                //开始复制一个list的内容到另外一个list
                list2.add(list1.get(i));
            }
            for (Object aList2 : list2) {
                System.out.println(aList2);
            }
        }
    }
    

    1. 方案二
    // 输出: **[{"clazz":1,"name":"李四","sex":"女"},{"clazz":2,"name":"赵柳","sex":"女"},{"clazz":3,"name":"孙八","sex":"女"},{"clazz":1,"name":"张三","sex":"男"},{"clazz":2,"name":"王五","sex":"男"}]**
    
    @Data
    class Student {
        private String name;
        private String sex;
        private Integer clazz;
    
        public Student(String name, String sex, Integer clazz) {
            this.name = name;
            this.sex = sex;
            this.clazz = clazz;
        }
    }
    
    //TODO 方案二
    public static void Docker() {
    	Student student1 = new Student("张三", "男", 1);
    	Student student2 = new Student("李四", "女", 1);
    	Student student3 = new Student("王五", "男", 2);
    	Student student4 = new Student("赵柳", "女", 2);
    	Student student5 = new Student("孙八", "女", 3);
    	List<Student> list = new ArrayList<>();
    	Collections.addAll(list, student1, student2, student3, student4, student5);
    
    	//根据性别分组 返回学生的Map Key是编号123 Value是学生分组好的对象
    	//.forEach(((k,v) -> System.out.println(k+":"+v)));
    	Map<String, List<Student>> collect = list.stream().collect(Collectors.groupingBy(Student::getSex));
    
    	//装载男生
    	ArrayList<Student> male = new ArrayList<>();
    	//装载女生
    	ArrayList<Student> female = new ArrayList<>();
    
    	for (Iterator<Map.Entry<String, List<Student>>> iterator = collect.entrySet().iterator(); iterator.hasNext(); ) {
    		Map.Entry<String, List<Student>> next = iterator.next();
    		if ("男".equals(next.getKey())) {
    			for (Student student : next.getValue()) {
    				male.add(student);
    			}
    		} else {
    			for (Student student : next.getValue()) {
    				female.add(student);
    			}
    		}
    	}
            male.stream().forEach(System.out::println);
            System.out.println("---------------------------------");
            female.stream().forEach(System.out::println);
    
            ArrayList<Object> menAndWomen = new ArrayList<>();
            female.addAll(male); //把男生加入致女生集合
            Collections.addAll(menAndWomen, JSON.toJSONString(female));
    
            System.out.println("----------------输出先女后男-----------------");
            menAndWomen.stream().collect(Collectors.toList()).forEach(System.out::println);
        }
    

    1. 方案三
    // 输出: 
    // **taskList
    // **C011105212020800010**
    // **C011105212020800009**
    // **C011305282020800058**
    // **C011305282020800055**
    // **C011305282020800048**
    // **C015505282020800046**
    // **C015505282020800056**
    // **C015505282020800063**
    // **C011305282020800057**
    // **C011305282020800059**
    // **C011305282020800062**
    // **C011305282020800063**
    // **C011305282020800066**
    // **C011305282020800068**
    // **C011305282020800069**
    // **C011305282020800074**
    // **C025705282020800006**
    // **C065105282020800077**
    // **C011305282020800080**
    // **C011305282020800084**
    // **C011305282020800114**
    // **C011305282020800117**
    // **C015505282020800133**
    // **C025305282020800010**
    // **C015505282020800159**
    // **C015405282020800012**
    // **C015405282020800013**
    // **C015405282020800014**
    // **C015405282020800015**
    // **C015405282020800016**
    // **C015405282020800018**
    // **C015405282020800019**
    // **C015505282020800170**
    // **C021105282020800011**
    // **C021105282020800014**
    // **C065105282020800197**
    // **C021105282020800015**
    // **C021105282020800016**
    // **C065105282020800198**
    // **C021105282020800018**
    // **C015405282020800020**
    // **C015405282020800022**
    // **C015405282020800023**
    // **C126205282020800001**
    // **C015505282020800185**
    // **C015505282020800186**
    // **C021105282020800021**
    // **C015405282020800024**
    // **C015405282020800025**
    // **C015405282020800026**
    // **C045605282018800023**
    // **C015105282020800005**
    // **C015105282020800006**
    // **C015105282020800007**
    // **C015505282020800202**
    // **C015505282020800228**
    // **C315105282020800008**
    // **C065105282020800305**
    // **C010105072020800002**
    // **C015505282020800273**
    // **C025705282020800089**
    // **C015505072020800010**
    // **C015505282020800275**
    // **C065105282020800312**
    // **C315105072020800002**
    // **C075105282020800042**
    // **C075105282020800043**
    // **C015505282020800279**
    // **C075105282020800047**
    // **C015405282020800027**
    // **C015505282020800284**
    // **C075105282020800050**
    // **C065105282020800375**
    // **C065105282020800381**
    // **C011305282020800153**
    // **C011305282020800154**
    // **C075105282020800057**
    // **C075105282020800059**
    // **C011305072020800005**
    // **C120105282020800012**
    // **C021205282020800054**
    // **C175205282020800009**
    // **C021205282020800084**
    // **C075105282020800073**
    // **C015505282020800290**
    // **C175205282020800018**
    // **C175205282020800021**
    // **C120105282020800019**
    // **C175205282020800022**
    // **C175205282020800023**
    // **C171105282020800005**
    // **C171105282020800006**
    // **C200805282020800005**
    // **C200805282020800006**
    // **C200805282020800007**
    // **C205105282020800003**
    // **C205105282020800004**
    // **C205105282020800008**
    // **C026405282020800021**
    // **C015405282020800040**
    // **C065105282020800653**
    // **C065105282020800654**
    // **C065105282020800655**
    // **C011305282020800163**
    // **C120105282020800022**
    // **C065105282020800670**
    // **C011305282020800166**
    // **C075105282020800075**
    // **C065105282020800783**
    // **C015405282020800047**
    // **C065105282020800910**
    // **C065105282020800954**
    // **C065105282020800985**
    // **C120105282020800059**
    // **C065105282020801037**
    // **C065105282020801070**
    // **C120105282020800060**
    // **C065105282020801212**
    // **C065105282020801218**
    // **C065105282020801220**
    // **C065105282020801232**
    // **C065105282020801236**
    // **C120105282020800062**
    // **C120105282020800063**
    // **C120105282020800064**
    // **C065105282020801262**
    // **C065105282020801278**
    // **C011305282022800562**
    // **C011305282022800566**
    // **C120105282020800067**
    // **C120105282020800068**
    // **C065105282020801430**
    // **C120105282020800071**
    // **C011305282020800189**
    // **C035905282020800021**
    // **C065105282020801451**
    // **C015405282020800057**
    // **C065105282020801458**
    // **C035905282020800024**
    // **C035905282020800025**
    // **C011305282020800197**
    // **C295105282020800007**
    // **C015505282020800309**
    // **C026405282020800024**
    // **C015405282020800065**
    
    //TODO 方案三
    public static void RabbitMQ() {
    	String[] str = {"C015505282020800046",
    			"C011305282020800048",
    			"C015505282020800056",
    			"C015505282020800063",
    			"C011305282020800055",
    			"C011305282020800057",
    			"C011305282020800058",
    			"C011305282020800059",
    			"C011305282020800062",
    			"C011305282020800063",
    			"C011105212020800009",
    			"C011105212020800010",
    			"C011305282020800066",
    			"C011305282020800068",
    			"C011305282020800069",
    			"C011305282020800074",
    			"C025705282020800006",
    			"C065105282020800077",
    			"C011305282020800080",
    			"C011305282020800084",
    			"C011305282020800114",
    			"C011305282020800117",
    			"C015505282020800133",
    			"C025305282020800010",
    			"C015505282020800159",
    			"C015405282020800012",
    			"C015405282020800013",
    			"C015405282020800014",
    			"C015405282020800015",
    			"C015405282020800016",
    			"C015405282020800018",
    			"C015405282020800019",
    			"C015505282020800170",
    			"C021105282020800011",
    			"C021105282020800014",
    			"C065105282020800197",
    			"C021105282020800015",
    			"C021105282020800016",
    			"C065105282020800198",
    			"C021105282020800018",
    			"C015405282020800020",
    			"C015405282020800022",
    			"C015405282020800023",
    			"C126205282020800001",
    			"C015505282020800185",
    			"C015505282020800186",
    			"C021105282020800021",
    			"C015405282020800024",
    			"C015405282020800025",
    			"C015405282020800026",
    			"C045605282018800023",
    			"C015105282020800005",
    			"C015105282020800006",
    			"C015105282020800007",
    			"C015505282020800202",
    			"C015505282020800228",
    			"C315105282020800008",
    			"C065105282020800305",
    			"C010105072020800002",
    			"C015505282020800273",
    			"C025705282020800089",
    			"C015505072020800010",
    			"C015505282020800275",
    			"C065105282020800312",
    			"C315105072020800002",
    			"C075105282020800042",
    			"C075105282020800043",
    			"C015505282020800279",
    			"C075105282020800047",
    			"C015405282020800027",
    			"C015505282020800284",
    			"C075105282020800050",
    			"C065105282020800375",
    			"C065105282020800381",
    			"C011305282020800153",
    			"C011305282020800154",
    			"C075105282020800057",
    			"C075105282020800059",
    			"C011305072020800005",
    			"C120105282020800012",
    			"C021205282020800054",
    			"C175205282020800009",
    			"C021205282020800084",
    			"C075105282020800073",
    			"C015505282020800290",
    			"C175205282020800018",
    			"C175205282020800021",
    			"C120105282020800019",
    			"C175205282020800022",
    			"C175205282020800023",
    			"C171105282020800005",
    			"C171105282020800006",
    			"C200805282020800005",
    			"C200805282020800006",
    			"C200805282020800007",
    			"C205105282020800003",
    			"C205105282020800004",
    			"C205105282020800008",
    			"C026405282020800021",
    			"C015405282020800040",
    			"C065105282020800653",
    			"C065105282020800654",
    			"C065105282020800655",
    			"C011305282020800163",
    			"C120105282020800022",
    			"C065105282020800670",
    			"C011305282020800166",
    			"C075105282020800075",
    			"C065105282020800783",
    			"C015405282020800047",
    			"C065105282020800910",
    			"C065105282020800954",
    			"C065105282020800985",
    			"C120105282020800059",
    			"C065105282020801037",
    			"C065105282020801070",
    			"C120105282020800060",
    			"C065105282020801212",
    			"C065105282020801218",
    			"C065105282020801220",
    			"C065105282020801232",
    			"C065105282020801236",
    			"C120105282020800062",
    			"C120105282020800063",
    			"C120105282020800064",
    			"C065105282020801262",
    			"C065105282020801278",
    			"C011305282022800562",
    			"C011305282022800566",
    			"C120105282020800067",
    			"C120105282020800068",
    			"C065105282020801430",
    			"C120105282020800071",
    			"C011305282020800189",
    			"C035905282020800021",
    			"C065105282020801451",
    			"C015405282020800057",
    			"C065105282020801458",
    			"C035905282020800024",
    			"C035905282020800025",
    			"C011305282020800197",
    			"C295105282020800007",
    			"C015505282020800309",
    			"C026405282020800024",
    			"C015405282020800065"};
    
    	List<Task> tasksListRabbitMq = new ArrayList<>();
    	for (int i = 0; i < str.length; i++) {
    		Task task = new Task();
    		task.setAccidentNo(str[i]);
    		tasksListRabbitMq.add(task);
    	}
    	
    	//要置顶的数据
    	List<TaskInfoVo> consultComplaintTaskInfoLists = new ArrayList<>();
    	TaskInfoVo infoVo1 = new TaskInfoVo();
    	infoVo1.setAccidentNo("C011305282020800048");
    	TaskInfoVo infoVo2 = new TaskInfoVo();
    	infoVo2.setAccidentNo("C011305282020800055");
    	TaskInfoVo infoVo3 = new TaskInfoVo();
    	infoVo3.setAccidentNo("C011305282020800058");
    	TaskInfoVo infoVo4 = new TaskInfoVo();
    	infoVo4.setAccidentNo("C011105212020800009");
    	TaskInfoVo infoVo5 = new TaskInfoVo();
    	infoVo5.setAccidentNo("C011105212020800010");
    	Collections.addAll(consultComplaintTaskInfoLists, infoVo1, infoVo2, infoVo3, infoVo4, infoVo5);
    
    	Set<String> caseNos = new HashSet<>();
    	for (TaskInfoVo taskInfoVo : consultComplaintTaskInfoLists) {
    		caseNos.add(taskInfoVo.getAccidentNo());
    	}
    
    	//将List中某些数据置顶
    	List<Task> taskList = tasksListRabbitMq;
    	for (int i = 0; i < taskList.size(); i++) {
    		Task task = taskList.get(i);
    		if (caseNos.contains(task.getAccidentNo())) {
    			//如果包含则删除并且使用temp变量接受放到第一个里面
    			Task temp = task;
    			taskList.remove(i);
    			taskList.add(0, temp);
    		}
    	}
    	System.err.println("taskList");
    	for (Task task : taskList) {
    		System.out.println(task.getAccidentNo());
    	}
    }
    

    1. 方案四
    // 输出: **[{"ifReport":"是","ziSuFlag":""},{"ifReport":"2","ziSuFlag":"2"},{"ifReport":"1","ziSuFlag":""}]**
    
    // 实体类
    @Data
    class ClaimStatusDetailResult {
        private String IfReport;
        private String ZiSuFlag;
    
        public ClaimStatusDetailResult(String ifReport, String ziSuFlag) {
            IfReport = ifReport;
            ZiSuFlag = ziSuFlag;
        }
    }
    
    // TODO 方案四
    public static void main(String[] args) {
    	List<ClaimStatusDetailResult> claimStatusList = new ArrayList<>();
    
    	ClaimStatusDetailResult result1 = new ClaimStatusDetailResult("1", "");
    	ClaimStatusDetailResult result2 = new ClaimStatusDetailResult("2", "2");
    	ClaimStatusDetailResult result3 = new ClaimStatusDetailResult("是", "");
    
    	Collections.addAll(claimStatusList, result1, result2, result3);
    
    
    	// TODO 方式四:符合条件的一条数据置顶展示
    	// 处理投诉上报/咨诉状态置顶展示
    	List<ClaimStatusDetailResult> claimStatusEditList = new ArrayList<>();
    	for (int i = 0; i < claimStatusList.size(); i++) {
    		ClaimStatusDetailResult claimStatusDetailResult = claimStatusList.get(i);
    		if ("是".equals(claimStatusDetailResult.getIfReport()) || StringUtils.isNotEmpty(claimStatusDetailResult.getZiSuFlag())) {
    			claimStatusEditList.add(0, claimStatusDetailResult);
    		} else {
    			claimStatusEditList.add(claimStatusDetailResult);
    		}
    	}
    
    	System.out.println(JSON.toJSON(claimStatusEditList));
    }
    

    1. 方案五
    // **输出: [{"state":2},{"state":4}]**
    
    // 实体类
    @Data
    class UserInfoVo {
        private Integer State;
    }
    
    @Data
    class ContainerInstance {
        private UserInfoVo userInfoVo;
    }
    
    // TODO 方案五
    List<UserInfoVo> userInfoVoList = new ArrayList<>();
    
    UserInfoVo infoVo01 = new UserInfoVo();
    infoVo01.setState(4);
    userInfoVoList.add(infoVo01);
    
    UserInfoVo infoVo02 = new UserInfoVo();
    infoVo02.setState(2);
    userInfoVoList.add(infoVo02);
    
    //TODO 方法五 处理在线人置顶展示
    Collections.sort(userInfoVoList, Comparator.comparing(UserInfoVo::getState));
    System.out.println(JSON.toJSON(userInfoVoList));
    
  • 相关阅读:
    oracle常用hint的用法
    浅谈reverse函数与django哲学
    javascript console
    python os.path模块
    删除列表元素
    Python模块学习 pickle, cPickle 对象序列化/反序列化
    Python中zip()函数用法举例
    Python 字符串方法详解
    常用正则验证
    python中下划线的用法
  • 原文地址:https://www.cnblogs.com/Twittery/p/14745136.html
Copyright © 2011-2022 走看看