Java 集合的排序
2018-04-08 17:25
330 查看
package sort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; /** * 对集合进行排序 * 两种方式: * 1.implements Comparable<Student>----------public int compareTo(Student o) * 2.实现Comparator<String>()接口------------ * public int compare(Entry<String, String> o1, Entry<String, String> o2) * o1/o2 升序 * o2/o1 降序 * 3.Map集合进行排序: * 可以对KEY进行升序 * 可以对KEY进行降序 * 可以对VALUE升序/降序 * */ public class Mapsort { public static void main(String[] args) { Map<String, String> map = new TreeMap<>(new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.compareTo(o1);// 降序 } }); map.put("c", "ccccc"); map.put("a", "aaaaa"); map.put("b", "bbbbb"); map.put("d", "ddddd"); Set<String> set = map.keySet();// 默认升序 Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { String key = (String) iterator.next(); System.out.println(key + "---" + map.get(key)); } System.out.println("--------------------------------"); Map<String, String> map2 = new TreeMap<>(); map2.put("d", "ddddd"); map2.put("b", "bbbbb"); map2.put("a", "aaaaa"); map2.put("c", "ccccc"); //1.要将SET集合(map.entryset)转换成list; List<Map.Entry<String, String>> list = new ArrayList<>(map2.entrySet()); //2.然后需要使用比较器进行排序 Collections.sort(list, new Comparator<Map.Entry<String, String>>() { @Override public int compare(Entry<String, String> o1, Entry<String, String> o2) { return o1.getValue().compareTo(o2.getValue()); } }); //3.遍历list for (Entry<String, String> map3 : list) { System.out.println(map3.getKey()+"--"+map3.getValue()); } } }
package sort; public class Student implements Comparable<Student> { private String name; private Integer age; public Student(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public int compareTo(Student o) { if (this.age > o.getAge()) { return 1; } else if (this.age < o.getAge()) { return -1; } else { return 0; } } }
package sort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; public class TestStudent { public static void main(String[] args) { List<Student> list = new ArrayList<>(); Student s1 = new Student("TY", 18); Student s2 = new Student("HHH", 20); Student s3 = new Student("ZZZ", 20); Student s4 = new Student("M", 100); list.add(s1); list.add(s2); list.add(s3); list.add(s4); System.out.println("按照age从小到大顺序排列:"); Collections.sort(list); Iterator<Student> iterator =list.iterator(); //调用了Collections工具类中的sort方法 while(iterator.hasNext()){ Student student = iterator.next(); System.out.println(student.getName()+"---"+student.getAge()); } System.out.println("--------------------------------------------------------"); System.out.println("按照age从大到小顺序排列:"); Comparator<Student> comparator = Collections.reverseOrder(); Collections.sort(list,comparator); Iterator<Student> iterator2 =list.iterator(); while(iterator2.hasNext()){ Student student = iterator2.next(); System.out.println(student.getName()+"---"+student.getAge()); } System.out.println("--------------------------------------------------------"); System.out.println("按照name字典中顺序排列:"); Collections.sort(list, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getName().compareTo(o2.getName()); } }); Iterator<Student> iterator3 =list.iterator(); while(iterator3.hasNext()){ Student student = iterator3.next(); System.out.println(student.getName()+"---"+student.getAge()); } } }
相关文章推荐
- Java集合排序及java集合类详解:Set
- java 集合排序(Comparable、Comparator)
- Java 往TreeSet集合中存储自定义对象学生,按照学生的年龄进行排序。
- java 集合框架按字符串长度排序
- Java中对List集合排序的两种方法
- java如何对map进行排序详解(map集合的使用)
- java 策略模式,list集合,实现id 姓名年龄正序倒序排序(如果年龄或者姓名重复,按id正序排序)
- 集合相等问题(java sort排序数组长度问题)
- Java比较器对数组,集合排序一
- Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码
- java中如何对数组和集合进行排序
- java集合中对象某属性比较排序
- Java 集合框架(Collection)和数组的排序
- 【慕课笔记】第六章 JAVA中的集合框架(下) 第8节 实现学生序列排序
- JAVA中使用静态内部类Comparator实现集合的排序
- Java比较器对数组,集合排序一
- Java对List集合中的元素进行排序
- JDK1.7和1.8中List集合中sort方法排序问题【JAVA】
- Java-集合--Java集合排序
- JAVA对list集合进行排序Collections.sort()