1.冒泡排序
冒泡排序的特点是,每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以“刨除”最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。
1.1升序
Integer [] str= {1,3,2,5,4,7,9,10,6};
for (int i = 0; i < str.length; i++) {
for (int j = 0; j < str.length-i-1; j++) {
if(str[j]>str[j+1]){
int temp=str[j+1];
str[j+1]=str[j];
str[j]=temp;
}
}
}
System.out.println("冒泡排序升序"+Arrays.toString(str));
1.2降序
Integer [] str= {1,3,2,5,4,7,9,10,6};
for (int i = 0; i < str.length; i++) {
for (int j = 0; j < str.length-i-1; j++) {
if(str[j]<str[j+1]){
int temp=str[j+1];
str[j+1]=str[j];
str[j]=temp;
}
}
}
System.out.println("冒泡排序降序"+Arrays.toString(str));
2.Java内置排序功能
2.1升序
Integer [] str= {1,3,2,5,4,7,9,10,6};
Arrays.sort(str)
System.out.println(Arrays.toString(str));
System.out.println("Java内置的排序功能升序"+Arrays.toString(str));
2.1降序
Arrays.sort默认是升序排列,可以使用*Collections.reverseOrder()来更改排序方式。
注:需注意不支持基本类型(int,double,char等),如果是int型需要改成Integer,float要改成Float。
Integer [] str= {1,3,2,5,4,7,9,10,6};
Arrays.sort(str, Collections.reverseOrder());
System.out.println("Java内置的排序功能降序"+Arrays.toString(str));
3.比较器排序
定义测试数据
final ArrayList<Map<String, String> > list = new ArrayList<>();
final HashMap<String, String> map1 = new HashMap<>();
map1.put("number","2");
map1.put("name","张三");
map1.put("age","12");
final HashMap<String, String> map2 = new HashMap<>();
map2.put("number","3");
map2.put("name","王二");
map2.put("age","12");
final HashMap<String, String> map3 = new HashMap<>();
map3.put("number","1");
map3.put("name","李四");
map3.put("age","12");
list.add(map1);
list.add(map2);
list.add(map3);
3.1升序
list.sort( new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
final Integer number = Integer.valueOf(o1.get("number"));
final Integer number1 = Integer.valueOf(o2.get("number"));
return number-number1 ;
}
});
3.1降序
list.sort( new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
final Integer number = Integer.valueOf(o1.get("number"));
final Integer number1 = Integer.valueOf(o2.get("number"));
return number1-number ;
}
});
其余排序方法,后续更新