0
点赞
收藏
分享

微信扫一扫

将对象中的某字符串变量按照数字类型排序

_铁马冰河_ 2022-03-21 阅读 76
java

问题描述

今天在项目过程中遇到个问题,由于数据库中的字段类型存的是varchar类型,所以及时里面存的全是int值,在排序的时候也会出问题,排列结果会像下面一样:1,10,11,12,13,2,3…

原因分析:

这是由于字符串在排序的时候是按照字符串中组成的单个字符顺序排列的


解决方案:

使用java8可以用下面的方法来写

public static void main(String[] args) {
        List<TestVM> list = new ArrayList<>();
        list.add(new TestVM("33"));
        list.add(new TestVM("34"));
        list.add(new TestVM("35"));
        list.add(new TestVM("36"));
        list.add(new TestVM("2"));
        list.add(new TestVM("3"));
        list.add(new TestVM("4"));
        list.add(new TestVM("5"));
        list.add(new TestVM("11"));
        list.add(new TestVM("12"));
        list.add(new TestVM("14"));
        list.add(new TestVM("2"));
        System.out.println(list);
        System.out.println(list.stream().sorted(Comparator.comparingInt(testVM -> Integer.parseInt(testVM.getLine()))).collect(Collectors.toList()));

    }
举报

相关推荐

0 条评论