Java List集合中元素比较大小

list排序方法一Comparator形式:

1.比较数字

List<Shoes> all_shoes = new ArrayList<Shoes>();
Collections.sort(all_shoes, new Comparator<Shoes>(){
    @Override
    /* *
     * int compare(String o1, String o2) 返回一个基本类型的整型
     * 返回-1表示:shoes1.getSimilarity()大于等于shoes2.getSimilarity(),
     * 返回1表示:shoes1.getSimilarity()小于shoes2.getSimilarity(),
     * */
    public int compare(Shoes shoes1, Shoes shoes2) {
        if (shoes1.getSimilarity()<shoes2.getSimilarity()){
            return 1;
        }else{
            return -1;
        }
    }
});
System.out.println("比较后");
for(Shoes s:all_shoes) {
    System.out.println(s.getId());
    System.out.println(s.getShoes_name());
    System.out.println(s.getPrice());
    System.out.println(s.getDeal());
    System.out.println(s.getImage());
    System.out.println(s.getShop_name());
    System.out.println(s.getAddress());
    System.out.println(s.getUrl());
    System.out.println(s.getSource());
    System.out.println(s.getSimilarity());
    System.out.println("--------------------------");
}

运行结果(similarity按从大到小顺序排列):

2.字符串型

package dao;

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

/**
*@author chenmeiqi
*@version 2020年2月24日 下午12:13:17
*/
public class test1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<String> keyList = new ArrayList<>();
        keyList.add("abc");
        keyList.add("fgh");
        keyList.add("cvb");
        System.out.println("排序前:");
        for(String s:keyList) {
            System.out.println(s);
        }

        Collections.sort(keyList, new Comparator<String>(){
            @Override
            public int compare(String o1, String o2) {
                /*
                 * * int compare(String o1, String o2) 返回一个基本类型的整型,
                 * * 返回负数表示:o1 小于o2,
                 * * 返回0 表示:o1和o2相等,
                 * * 返回正数表示:o1大于o2
                 * */
                if (o1.compareTo(o2) > 0){
                    return 1;
                }else if (o1.compareTo(o2) > 0){
                    return 0;
                }else{
                    return -1;
                }
            }
        });
        System.out.println("排序后:");
        for(String s:keyList) {
            System.out.println(s);
        }

    }

}

运行结果:

原文地址:https://www.cnblogs.com/qilin20/p/12356387.html

时间: 2024-07-31 19:32:02

Java List集合中元素比较大小的相关文章

java按照集合中元素的属性进行排序示例代码

public class Student { private String name; private int age; private int id; public Student() {  super(); } public Student(String name, int age, int id) {  super();  this.name = name;  this.age = age;  this.id = id; } public String getName() {  retur

关于集合中元素的有序无序的易混淆点

最近在整理Java基础知识的面试题,看到了一个题目的答案不够准确,这里跟大家分享一下. 一.面试题的小错误 对于TreeSet和TreeMap来说,元素应该是无序(指元素的存取)而不是有序的,而在表中它可能想表达的是可以排序,不够严谨,严格来讲 元素的有序≠可以排序.元素的存取有序和排序本质上应该是两码事,不应该混为一听. 二.元素的有序和无序 下面具体来讲讲,集合中元素的存取有序的问题. 众所周知,List的特点:    ①元素可重复 ②元素是有序的 相对地,Set的特点是:    ①元素唯一

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变了元素的值 Console.WriteLine(x); } 如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现. 实际上,在.Net的底层(IL语言层面)而言, foreach (var

JAVA求集合中的组合

好几个月没弄代码了,今天弄个求组合的DEMO 思路是将集合的每个值对照一个索引,索引大小是集合的大小+2.索引默认为[000...000],当组合后选取的组合值demo为[0100..00].然后根据遍历索引来到集合中取值. 上代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ComBit { public static void main(String[]

黑马程序员——java——TreeSet集合中储存学生对象,按照其年龄进行排序

TreeSet集合中储存学生对象,按照其年龄进行排序 import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.TreeSet; public class SortListDemos { public static void main(String[] args) { // //linkhash

Java Collection集合中的iterator方法

Iterator接口的概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返回true. * 即判断集合中还有没有下ー个元素,有就返回true,没有就返回 false * E next() * 返回送代的下一个元素. * 即取出集合中的下一个元素 * iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象. * 获取实现类的方式比较特

java中循环遍历删除List和Set集合中元素的方法

今天一个网友问我集合忘记了没有,这一问让我纠结了一下,最后决定把这个集合问题写下来,以免自己在犯下类似的问题: 需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常:ConcurrentModificationException为了以后不会忘记,和也给遇到同样问题的同事提供一个参考: 出现错误的代码如下所示: package set; import java.util.HashSet; import java.util.Iterator; import java.u

关于List集合中元素排序问题

问题描述: 有一个list集合,其中元素是Student对象,根据student的age排序. Student对象 /** * description * * @author 70KG * @date 2018/9/29 */ @Data public class Student implements Comparable<Student> { private String name; private Integer age; private Integer num; public Stude

Java 之 集合中的 modCount的作用

modCount:记录当前集合被修改的次数 在所有的集合实现类中(Collection与Map中),都会有一个 modCount 的变量出现,它的作用就是记录当前集合被修改的次数. 下面以ArrayList 类进行说明: 添加方法: 删除方法: 可以看出,两个操作都会影响元素的个数. 当我们使用迭代器或 foreach 遍历时,如果你在 foreach 遍历时,自动调用迭代器的迭代方法,此时在遍历过程中调用了集合的add,remove方法时,modCount就会改变,而迭代器记录的modCoun