Java中怎么取出数组中某个单位的某个值进行排序?
发布网友
发布时间:2023-07-10 08:58
我来回答
共5个回答
热心网友
时间:2023-07-12 18:21
sort(T[] a, Comparator<? super T> c)
用这个函数,自定义comparator函数实现最后一个值排序
import java.util.Arrays;
import java.util.Comparator;
public class TestDengCha {
public static void main(String[] agrs) {
Student[] s = new Student[5];
s[0] = new Student("西西", 59, 78, 80);
s[1] = new Student("小亿", 67, 78, 70);
s[2] = new Student("咚咚", 23, 84, 77);
s[3] = new Student("李济", 69, 78, 73);
s[4] = new Student("冰芳", 76, 74, 71);
Arrays.sort(s, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
if (s1 != null && s2 != null) {
return s1.getEnglish() > s2.getEnglish() ? 1 : (s1.getEnglish() == s2.getEnglish() ? 0 : -1);
}
return 0;
}
});
System.out.println(Arrays.toString(s));
}
}
class Student {
private String name;
private int chinese;
private int math;
private int english;
Student(String name, int chinese, int math, int english) {
this.name = name;
this.chinese = chinese;
this.english = english;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
this.chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
@Override
public String toString() {
return "姓名:" + name + " 语文" + chinese + " 数学" + math + " 英语" + english;
}
}
热心网友
时间:2023-07-12 18:22
Collections 类的方法 sort
public static <T> void sort(List<T> list,
Comparator<? super T> c)
根据指定比较器产生的顺序对指定列表进行排序。此列表内的所有元素都必须可使用指定比较器相互比较(也就是说,对于列表中的任意
e1 和 e2 元素,c.compare(e1, e2) 不得抛出
ClassCastException)。
此排序被保证是稳定的:不会因调用 sort 而对相等的元素进行重新排序。
排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。此算法提供可保证的 n log(n) 性能。
指定列表必须是可修改的,但不必是可大小调整的。此实现将指定列表转储到一个数组中,并对数组进行排序,在重置数组中相应位置每个元素的列表上进行迭代。这避免了由于试图原地对链接列表进行排序而产生的
n2 log(n) 性能。
参数:
list - 要排序的列表。
c - 确定列表顺序的比较器。null 值指示应该使用元素的自然顺序。
抛出:
ClassCastException -
如果列表中包含不可使用指定比较器相互比较 的元素。
UnsupportedOperationException
- 如果指定列表的列表迭代器不支持 set 操作。
热心网友
时间:2023-07-12 18:22
将你的每一个数组的最后一个数放在num[]整形数组中,然后调用方法
Arrays.sort(num)(升序);
System.out.println("从大到小输出:");
for (int m = num.length-1; m >=0; m--) {
System.out.println(num[m]);//从大到小输出
}
}追问可是你这输出来的 就只有那个数的排序吧?还有别的内容要一起显示出来呢?
热心网友
时间:2023-07-12 18:23
数组中的元素现在是一个对象,只要获取对象的属性值,然后对数组进行排序即可。
热心网友
时间:2023-07-12 18:23
最后一个数值是Student的什么属性呢?
可以对s[i].属性这个值进行排序,可用冒泡排序
Java中怎么取出数组中某个单位的某个值进行排序?
用这个函数,自定义comparator函数实现最后一个值排序 import java.util.Arrays;import java.util.Comparator;public class TestDengCha { public static void main(String[] agrs) { Student[] s = new Student[5]; s[0] = new Student("西西", 59, 78, 80); s[1] = new Student("...
java中如何输出数组中某个元素在数组中的原始的位置?
} System.out.println("最小值的位置是:"+locateNum);System.out.println("最少的积分是:"+locateValue);}
用java编写一个通用的方法,在给出的一维数组中统计某一区间的数值个数...
import java.util.Scanner;public class scannertest { int start,end;public void scans(){ Scanner scan= new Scanner(System.in);System.out.println("请输入数组容量");int container= scan.nextInt();int[] array= new int[container];System.out.println("请输入数组最小值");start= scan....
java中 如何移除一组数据中的某个特定值
import java.util.*;public class SS{ public static void main(String[] args){ Integer[] a={1,2,3,4};ArrayList<Integer> at=new ArrayList<Integer>(Arrays.asList(a)); //用ArrayList存数组 int x=at.indexOf(3); //假如要删除3,获取3的下标,若不存在,返回-1 //System.out.p...
java如何删除掉数组中的某个元素??
= new String[arrays.length];int i = 0;for(String s:arrays){ if(!s.equals("2")){ tempArr[i] = s;i++;} } for(int j = 0; j < tempArr.length; j++) { System.out.println(tempArr[j]);} // 数组本身是不可以移除元素的 但可以通过中间变量来实现数组的移除 ...
java 大家好,如何取出数组里的某个元素?
{ //如果输入的数字跟当前数组的元素的值相同 if(target == arr[i]) { //输入所在位置,从1开始 System.out.println(target + "位于数字的第" + (i + 1) + "位");//结束 return;} } //如果找不到的话就提示一下 System.out.println("数组中不存在数字:" + target);} ...
java怎么随读取一列数组里某个值?比如[1,2,3,4]随机读取其中的一个数...
public class J1 { public static void main(String[] args) { int[] temp = { 1, 2, 3, 4};int index = (int) (Math.random() * temp.length);// 随机数乘以数组长度,那么它的取值就在0-length之间 System.out.println(temp[index]);} } ...
java数组如何拿到该数组的某一个的下一个的值?
int[] data = new int[]{1,2,3,4,5};int a=2;for(int i=0;i<data.length;i++){ if(a== data[i]){ //如果判断值相等 if(i<data.length-1){//需先判断改值是否为数组的最后一个值,如果不是,再去取其下一个值 int b=data[i + 1];System.out.println("下一个值为 :...
java中,如何取数组的某一个值
看你bigcar这个类是怎么定义的。 比如 这个元素对应的是price的话 那就是 cars[0].price
java中,如何取数组的某一个值
n是你输入的数 BigCar bigCar = car[n];int a = bigCar .get400(); //这个400是对应400那个属性的get方法.你需要把你的BigCar类也粘出来,要不不知道你那个类里都有那些属性.不知道你们学没学到继承,你这个最好用继承的方式去做.否则就需要判断语句进行判断....