栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java集合排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java集合排序

Java集合排序
Java集合排序
  • Java集合排序
    • @[TOC](Java集合排序)
  • 主要内容
  • 一、集合中的基本数据类型排序
  • 二、集合中的字符串排序
    • 例题
  • 三、Comparator
  • 四、Comparable
  • 五、Comparator与Comparable区别
  • 六、总结
  • 补充:数组的排序
主要内容 一、集合中的基本数据类型排序
  • 使用Collections类的sort()方法
  • sort(List list)根据元素的自然顺序对指数列表按升序进行排序
二、集合中的字符串排序 例题
  • 对整形进行排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class day28 {
    public static void main(String[] args) {
        // 泛型使用类的形式
        List list = new ArrayList();
        list.add(8);
        list.add(5);
        list.add(9);
        list.add(1);
        for (int i:list){
            System.out.print(i+" ");
        }
        System.out.println();
        System.out.println("***********************");
        // list排序
        Collections.sort(list);
        for (int i:list){
            System.out.print(i+" ");
        }
        System.out.println();
        System.out.println("***********************");
    }
}
  • 对字符串进行排序
 // 对存在list字符串进行排序
        List list = new ArrayList();
        list.add("orange");
        list.add("red");
        list.add("blue");
        list.add("yellow");
        System.out.println("Before sorting:");
        for (String s : list) {
            System.out.print(s + " ");
        }
        // 按照字母顺序排序
        Collections.sort(list);
        System.out.println("After sorting:");
        for (String s:list){
            System.out.print(s+" ");
        }
三、Comparator
  • 强行对某个对象进行整体排序的比较函数
  • 可以将Comparator传递给sort方法
  • int compare(n1,n2)比较用来排序的两个参数
  • equals(obj)该方法不需重写
  • 对宠物猫进行排序
  • Cat类
package day2;

public class Cat {
    private String name;
    private int month;
    private String species;

    //构造方法
    public Cat(String name, int month, String species) {
        this.name = name;
        this.month = month;
        this.species = species;
    }
    //getter与setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public String getSpecies() {
        return species;
    }

    public void setSpecies(String species) {
        this.species = species;
    }

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + ''' +
                ", month=" + month +
                ", species='" + species + ''' +
                '}';
    }

}

  • NameComparator类
package day2;

import java.util.Comparator;

public class NameCompatator implements Comparator {
    @Override
    public int compare(Cat o1, Cat o2) {
        
        String name1=o1.getName();
        String name2=o2.getName();
        // 对字符串进行比较,~ 倒序
        return name1.compareTo(name2);
    }
}

  • Main 按照名字升序
package day2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class day28 {
    public static void main(String[] args) {
        
        Cat huahua = new Cat("huahua",6,"波斯");
        Cat fanfan = new Cat("fanfan",2,"波斯");
        Cat maomao = new Cat("maomao",4,"波斯");
        List catList=new ArrayList();
        catList.add(huahua);
        catList.add(fanfan);
        catList.add(maomao);
        System.out.println("Before sorting:");
        for (Cat cat:catList){
            System.out.println(cat);
        }
        // 名字升序
        Collections.sort(catList,new NameCompatator());
        System.out.println("After sorting:");
        for (Cat cat:catList){
            System.out.println(cat);
        }
    }
}

  • AgeComparator类
package day2;

import java.util.Comparator;

public class AgeComparator implements Comparator {
    @Override
    public int compare(Cat o1, Cat o2) {
        // 按照年龄降序
        int age=o1.getMonth();
        int age2=o2.getMonth();
        return age2-age;
    }
}

  • Main 年龄降序
// 按照年龄进行降序
        Collections.sort(catList,new AgeComparator());
        System.out.println("Age:After sorting:");
        for (Cat cat:catList){
            System.out.println(cat);
        }
四、Comparable
  • 自然排序
  • compareTO(o)自然比较
  • 例题:对商品价格进行降序排列
  • Goods类
package day2;

public class Goods implements Comparable{
    private String id;
    private String name;
    private double price;

    public Goods(String id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Goods{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", price=" + price +
                '}';
    }

    
    @Override
    public int compareTo(Goods o) {
        // 取出商品价格
        double price1=this.getPrice();
        double price2=o.getPrice();

        return new Double(price2-price1).intValue();
    }
}

  • Main
Goods g1=new Goods("s01","手机",2000);
        Goods g2=new Goods("s02","冰箱",5000);
        Goods g3=new Goods("s03","电视剧",3000);
        List goodsList=new ArrayList();
        goodsList.add(g1);
        goodsList.add(g2);
        goodsList.add(g3);
        System.out.println("Before sorting:");
        for (Goods goods:goodsList){
            System.out.println(goods);
        }
        Collections.sort(goodsList);
        System.out.println("After sorting:");
        for (Goods goods:goodsList){
            System.out.println(goods);
        }
  • result
Before sorting:
Goods{id=s01, name='手机', price=2000.0}
Goods{id=s02, name='冰箱', price=5000.0}
Goods{id=s03, name='电视剧', price=3000.0}
After sorting:
Goods{id=s02, name='冰箱', price=5000.0}
Goods{id=s03, name='电视剧', price=3000.0}
Goods{id=s01, name='手机', price=2000.0}
五、Comparator与Comparable区别

六、总结


补充:数组的排序
int[] arrs
Array.sort(arrs);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/855302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号