List中的对象按照某个属性排序

根据Subject对象中的site对象的nick属性和自己的nick属性排序(按中文排序):

List<Subject> subjects = new ArrayList<Subject>();
Collections.sort(subjects, new Comparator<Subject>() {
            private int result = 0;

            @Override
            public int compare(Subject o1, Subject o2) {
                //先根据站点排序,再根据频道排序
                result = Collator.getInstance(java.util.Locale.CHINA).compare(
                    o1.getSite().getNick(), o2.getSite().getNick());
                if (result == 0) {
                    return Collator.getInstance(java.util.Locale.CHINA).compare(o1.getNick(),
                        o2.getNick());
                } else {
                    return result;
                }
            }
        });

猜你喜欢

转载自yonge812.iteye.com/blog/1292371