部分内容引用自:https://www.w3cschool.cn/java/java-collections-algorithms.html
package com.hqy.String;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class JavaJiheAlgorithm {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
一.Collection类中的两个静态方法会对List进行排序。
1.sort(List list)按照由元素实现的Comparable接口定义的顺序对List中的元素进行排序。
2.sort(List list,Comparator c)使用传入的Comparator对象对元素进行排序。
*/
List<String> list=new ArrayList<>();
list.add("f");
list.add("edf");
list.add("y");
list.add("c");
System.out.println("List:"+list);
Collections.sort(list);
System.out.println("Sorted List:"+list);
/*
* 二.使用List接口中的sort()方法按其元素长度的升序对列表进行排序:
*/
list.add("oedr");
list.sort(Comparator.comparing(String::length));
System.out.println("Sorted list:"+list);
/*
三.搜索列表
Collections类中的两个静态binarySearch()方法在List中搜索键。
该方法使用二分搜索算法执行搜索。
注意: 1.List 必须按升序排序,然后才能使用 binarySearch()方法。
2. 如果在列表中找到该键,则该方法将在列表中返回其索引。
3.如果在列表中没有找到键,它返回( - (insertion_index)-1),
其中 Math.abs(( - (insertion_index)-1))是我们可以插入这个键的索引仍然保持列表订购。
4.在列表中找不到键时,返回值为负值。
*/
Collections.sort(list);
int index=Collections.binarySearch(list, "f");
System.out.println("f in list is at:"+index);
index=Collections.binarySearch(list, "go on");
System.out.println("go on in list is at:"+index);
/*
四.随机播放列表
Collections类的shuffle()方法
*/
Collections.shuffle(list);
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
/*
五.反向列表:使用 Collections 类的 reverse()的静态方法来反转列表中的元素。
*/
Collections.sort(list);
System.out.println(list);
Collections.reverse(list);
System.out.println("reverse:"+list);
}
}
结果:
List:[f, edf, y, c]
Sorted List:[c, edf, f, y]
Sorted list:[c, f, y, edf, oedr]
f in list is at:2
go on in list is at:-4
[y, edf, f, c, oedr]
[edf, c, y, oedr, f]
[c, edf, f, oedr, y]
reverse:[y, oedr, f, edf, c]