Collections.sort方法与二维用方法

    技术2022-05-20  38

    int[][] n =new int[][]{{10,20,30},                               {40,50,80},                               {60,90}};         String[][] n1 = {{"ye","yu"},{"ho","no"},{"hi"},{"op","ok","jk"}};        for(String[] a: n1) {            for (String item: a) {                System.out.print(item+" ");            }        }        System.out.println("start ");        for(int[] a: n) {            for (int item: a) {                System.out.print(item+" ");            }        }        System.out.println("start ");                for (int i =0; i < n.length; i++) {            for (int j =0; j< n[i].length; j++){                System.out.print(n[i][j]+" ");            }        }    } SysUtil.convertToList 在这个包下这个BasePojo对象是基类一些get|set方法/*public class BasePojo implements Serializable {    protected Integer version;    protected Timestamp latestModifyDate;    protected Integer latestModifyBy;    protected Timestamp createdDate;    protected Integer createdBy = 0;    protected Boolean deleted;    protected Integer id;*/    @SuppressWarnings("unchecked")    public static List<BasePojo> convertToList(Set<BasePojo> set) {        Iterator it = set.iterator();        List<BasePojo> list = new ArrayList<BasePojo>();        if (set != null && set.size() != 0) {            while (it.hasNext()) {                BasePojo pojo = (BasePojo) it.next();                list.add(pojo);            }        }        sort(list);        return list;    }通过ID比较    public static void sort(List<BasePojo> list){        Collections.sort(list, new Comparator<BasePojo>(){            public int compare(BasePojo o1, BasePojo o2){                if(o1.getId() > o2.getId())                    return 1;                else                    return -1;            }        });    }这个是ResumeService List resumeEducationList = SysUtil.convertToList(resume        .getResumeEducations());用的hibernate 返回    private Set resumeEducations = new HashSet(0);import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;通过日期时间比较:MM/dd/yyyy    /**     * Inner class sorting     * @param list     */public void sortResumeEdcuational(List list){        Collections.sort(list, new Comparator<ResumeEducation>(){            public int compare(ResumeEducation o1, ResumeEducation o2){                List<SimpleDateFormat> sdfs = new ArrayList<SimpleDateFormat>();                SimpleDateFormat defaultSimpleDateFormat;                try {                    Properties props = new Properties();                                        //defaultPattern=MM/dd/yyyy                    props.load(DateConverter.class                            .getResourceAsStream("DateConverter.properties"));                    String defaultPattern = props.getProperty("defaultPattern");                    defaultSimpleDateFormat = new SimpleDateFormat(defaultPattern);                    sdfs.add(defaultSimpleDateFormat);                    Enumeration e = props.propertyNames();                    String pattern = null;                    while (e.hasMoreElements()) {                        pattern = (String) props.getProperty((String) e.nextElement());                        if (!pattern.equals(defaultPattern)) {                            sdfs.add(new SimpleDateFormat(pattern));                        }                    }                } catch (IOException e) {                    String s = "Date (Time) format string read failure, Reason:" + e;                    throw new RuntimeException(s);                }                                Long time1 = null;                Long time2 = null;                                for (SimpleDateFormat sdf : sdfs) {                    try {                        if (StringUtils.isNotBlank(o1.getDateFrom())){                            time1 = sdf.parse(o1.getDateFrom()).getTime();                            break;                        } else{                            time1 = new Date().getTime();                        }                    } catch (ParseException e) {                        continue;                    }                }                                for (SimpleDateFormat sdf : sdfs) {                    try {                        if (StringUtils.isNotBlank(o2.getDateFrom())){                            time2 = sdf.parse(o2.getDateFrom()).getTime();                            break;                        } else{                            time2 = new Date().getTime();                        }                    } catch (ParseException e) {                        continue;                    }                }                                if(time1 < time2)                    return 1;                else                    return -1;            }        });    }        List<Answer> resultList = question.getAnswers();               // EasyMock        assertNotNull(equalsList);        assertNotNull(resultList);        int size = equalsList.size();        assertEquals(equalsList.size(), resultList.size());        Collections.sort(resultList, new Comparator<Answer>() {            public int compare(Answer o1, Answer o2) {                int sequence1 = o1.getId().getAnswerId().intValue();                int sequence2 = o1.getId().getAnswerId().intValue();                return sequence1 - sequence2;            }        });

    // 也可以通过TreeSet 进行比较:

                List<ScheduleType> scheduleTypeList = scheduleTypeDao.findScheduleTypeByLabel(scheduleTypeSearchForm                    .getSearchParameter());            scheduleTypeList = sortByLabel(scheduleTypeList);

    private List<ScheduleType> sortByLabel(final List<ScheduleType> source) {        final TreeSet<ScheduleType> treeSet = new TreeSet<ScheduleType>(new Comparator<ScheduleType>() {            public int compare(final ScheduleType st1, final ScheduleType st2) {                return st1.getLabel().compareTo(st2.getLabel());            }        });        treeSet.addAll(source);        final List<ScheduleType> result = new ArrayList<ScheduleType>();        result.addAll(treeSet);        return result;    }


    最新回复(0)