当前位置: 代码迷 >> 综合 >> 数组排序、包含int[]、String[]、Student[]类数组(升序、降序、乱序)
  详细解决方案

数组排序、包含int[]、String[]、Student[]类数组(升序、降序、乱序)

热度:45   发布时间:2023-12-03 02:14:41.0

int[]数组排序

package cn.wzt;import java.util.Arrays;
import java.util.Random;public class ArrSort2 {public static void main(String[] args) {Random random = new Random();int[] ints = new int[10];for (int i = 0; i < ints.length; i++) {ints[i]= random.nextInt(100)+1;}System.out.printf("排序前:%s%n", Arrays.toString(ints));//冒泡排序for (int i = 0; i < ints.length-1; i++) {for (int i1 = 0; i1 < ints.length-i-1; i1++) {if (ints[i1]<ints[i1+1]){ //<降序,>升序int t=ints[i1];ints[i1]=ints[i1+1];ints[i1+1]=t;}}}System.out.println(Arrays.toString(ints));//选择排序for (int i=0;i<ints.length;i++){int min=ints[i];for (int i1 = i; i1 < ints.length; i1++) {if(min>ints[i1]){int t=min;min=ints[i1];ints[i1]=t;}}ints[i]=min;}System.out.println(Arrays.toString(ints));int[] ints1 = {1, 2, 3, 4,5};System.out.println(Arrays.toString(ints1));//乱序int index=0;while (true){int a= random.nextInt(ints1.length);int b= random.nextInt(ints1.length);if (a==b)continue;int t=ints1[a];ints1[a]=ints1[b];ints1[b]=t;if (++index>=100) break;}System.out.println(Arrays.toString(ints1));}
}

String[]字符串数组排序

ArrSort3.java 实现类

package cn.wzt;import java.util.Arrays;
import java.util.Comparator;public class ArrSort3 {public static void main(String[] args) {//字符串排序var ss=new String[]{"java","c","php","go","ruby"};System.out.println(Arrays.toString(ss));System.out.println(Arrays.toString(ss));//升序Arrays.sort(ss);System.out.println(Arrays.toString(ss));//降序Arrays.sort(ss, Comparator.reverseOrder());System.out.println(Arrays.toString(ss));//乱序Arrays.sort(ss,(a,b)->Math.random()>.5?1:-1);System.out.println(Arrays.toString(ss));//对象条件排序//根据学生成绩排序var student=new Student[]{new Student(1,"张三",30),new Student(2,"李四",40),new Student(3,"王五",50)};System.out.println(Arrays.toString(student));//未排序//根据成绩升序Arrays.sort(student,(a,b)->a.getScore()-b.getScore());System.out.println(Arrays.toString(student));//根据成绩降序Arrays.sort(student,(a,b)->b.getScore()- a.getScore());System.out.println(Arrays.toString(student));}
}
Student.java学生类
package cn.wzt;public class Student {private int id;private String name;private int score;@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\'' +", score=" + score +'}';}public Student(int id, String name, int score) {this.id = id;this.name = name;this.score = score;}public Student() {}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}}

  相关解决方案