对集合中添加的元素排序
//主方法中创建集合
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("b");
list1.add("f");
list1.add("e");
list1.add("c");
list1.add("a");
list1.add("d");
sort1(list1);
System.out.println(list1); // a, b, c, d, e, f
}
为了更好的理解,先演示数值型集合排序方法
/**
* 数值类型集合排序,冒泡算法
* @param list2 需要排序的集合
*/
private static void sort2(List<Integer> list2) {
for (int i = 0; i < list2.size(); i++) {
for (int j = 0; j < list2.size()-i-1; j++) {
int c=list2.get(j); //获取索引为j的值
int c2=list2.get(j+1); //获取索引为j+1的值
if(c>c2) { //比较大小,条件满足则交换赋值
int temp=c;
list2.set(j, c2);
list2.set(j+1, temp);
}
}
}
}
字符型则根据码表来比较排序
/**
* 字符类型集合排序,冒泡算法
* @param list1 需要排序的集合
*/
private static void sort1(List<String> list1) {
for (int i = 0; i < list1.size(); i++) {
for (int j = 0; j < list1.size()-i-1; j++) {
char c=list1.get(j).charAt(0); //获取索引为j的值并转为字符型
char c2=list1.get(j+1).charAt(0); //获取索引为j+1的值并转为字符型
if(c>c2) { //比较Ascii码,条件满足则交换赋值
char temp=c;
list1.set(j, c2+"");
list1.set(j+1, temp+"");
}
}
}
}