建网站 3年服务器,西安网站设计西安搜推宝,wordpress缩略图比例,做的单页html怎么放网站列表类型
一.Collections.sort()
Collections.sort()用于List类型的排序#xff0c;其提供了两个重载方法#xff1a;
1.sort(ListT list)
#xff08;1#xff09;List指定泛型时只能指定引用数据类型#xff0c;也就是说无法用于基本数据类型的排序。
其提供了两个重载方法
1.sort(ListT list)
1List指定泛型时只能指定引用数据类型也就是说无法用于基本数据类型的排序。
2如果T是String类型则会按字典顺序进行升序排序。 3对于八大包装类除了Boolean以外均实现了Comparable接口默认按数字顺序进行升序排序。
4如果T是自定义数据类型则前提是T必须实现Comparable接口并重写其compareTo()方法才能使用该方法进行排序。 2.sort(ListT list , Comparator? super T c)
1这种方式会对传入的List对象按照比较器c的规则进行排序
2如果类T实现过Comparable接口则比较器Comparator的比较规则会优先于Comparable的比较规则 可以看到原本Student类实现Comparable接口在compareTo()方法中要求按age进行升序排序但是执行Collections.sort()方法时会优先按传入的比较器进行排序而比较器中的compare()方法要求按age进行降序排序。
3上述写法也可以通过lambda表达式简写 二.list.sort()
list.sort()只有一种写法没有重载方法
1.sort(Comparator? super E c)
1这个sort()方法是属于List类的一个普通方法通过对象调用
2需注意的是使用该方法必须传入一个Comparator对象指定排序规则。列表指定的泛型对象实现的Comparable接口在该方法的调用中是无效的只能按Comparator指定的排序规则排序。
3上述Collections.sort()的例子中studentList的排序可以替换成 4同样可以用lambda表达式简写
三.list.stream().sorted()
list.stream().sorted()存在两个重载方法
1.list.stream().sorted().collect(Collectors.toList())
1使用方法与上述的Collections.sort()相同sorted()会对List对象进行自然排序
2List指定的泛型对象需要实现Comparable接口排序时会按其compareTo()方法进行排序
3上述studenList使用这种方法进行升序排序 2.list.stream().sorted(Comparator? super E c).collect(Collectors.toList())
1使用方法与上述sort(Comparator? super E c)相同
2上述studenList使用这种方法进行降序排序使用lambda表达式简写 3.注意
1sorted()实际是Stream类的一个普通方法因此需要通过list.stream()先获取到列表的流对象才能调用
2list.stream().sorted()并不会对list对象进行排序而是会返回一个按排序规则排好的Stream对象而原list对象不会发生任何改变。而.collect(Collectors.toList())用于将Stream对象转成List对象。
3按照上述说法若想对list进行排序则该方法的完整使用方法是
list list.stream().sorted().collect(Collectors.toList()); 数组类型
一.Arrays.sort()
Arrays.sort()提供了两个重载方法
1.Arrays.sort(T[] a)
1若T为基本数据类型则按照数字顺序进行升序排序
2若T为String类型则按照字典顺序进行升序排序
3若T为引用数据类型则T必须实现Comparable接口并重写其compareTo()方法才能排序
4八大包装类除Boolean外都实现了Comparable接口按数字顺序升序排序
5对Student类型数组进行升序排序上述Student类已经实现了Comparable接口其compareTo()方法指定按age进行升序排序 2.Arrays.sort(T[] a, Comparator? super T c)
1用法与上述使用Comparator进行排序的方式相同
2对students数组进行降序排序使用lambda表达式简写 总结
1.Collections
1sort()
2是Collections类的静态方法通过类调用
3需传入排序对象排序对象就是传入的列表对象
4支持Comparable和Comparator两种方式
5用于List对象只支持引用数据类型
2.List
1sort()
2是List类的普通方法通过对象调用
3无需传入排序对象排序对象就是调用者本身
4只支持Comparator
5用于List对象只支持引用数据类型
3.Stream
1sorted()
2是Stream类的普通方法通过对象调用
3无需传入排序对象排序对象不是调用者而是一个新的对象并以返回值返回
4支持Comparable和Comparator两种方式
5用于List对象只支持引用数据类型
4.Arrays
1sort()
2是Arrays类的静态方法通过类调用
3需传入排序对象排序对象就是传入的数组对象
4支持Comparable和Comparator两种方式
5用于数组对象支持基本数据类型和引用数据类型