如何在java中对三个数组进行排序?

如何在java中对三个数组进行排序?,java,arrays,sorting,Java,Arrays,Sorting,我的program姓氏、名字和结果中有三个数组,需要创建一个排序数组 姓氏:克里斯姓名:查尔顿:结果:54 姓:安妮特:名:莱尔:结果67 如果我想按姓氏的字母顺序对其排序,我需要移动所有字段,而不仅仅是姓氏。这是我正在处理的冒泡排序代码 int swap; boolean swapflag = true; //outer loop while (swapflag == true) { swapflag = false; /

我的program姓氏、名字和结果中有三个数组,需要创建一个排序数组 姓氏:克里斯姓名:查尔顿:结果:54 姓:安妮特:名:莱尔:结果67 如果我想按姓氏的字母顺序对其排序,我需要移动所有字段,而不仅仅是姓氏。这是我正在处理的冒泡排序代码

    int swap;
    boolean swapflag = true;
    //outer loop
    while (swapflag == true)
    {
        swapflag = false;
        //inner loop
        for (int index=0; index < (nums.length - 1); index++)
        {
            //swap routine
            if (nums[index]> nums[index + 1])
            {   //swap routine
                swap = nums[index];
                nums[index] = nums[index + 1];
                nums[index + 1] = swap;
                swapflag = true;
            }
        }//end inner
    }//end outer

    System.out.println ("\nArray Contents after sorting"
            + "\n*************");

    for (int index=0; index < nums.length; index ++)
    {  
        System.out.println("Array element " 
                + index + ": " + nums[index]);  
    }
}
int交换;
布尔swapflag=true;
//外环
while(swapflag==true)
{
swapflag=false;
//内环
对于(int index=0;index<(nums.length-1);index++)
{
//交换例程
如果(nums[index]>nums[index+1])
{//交换例程
交换=nums[索引];
nums[index]=nums[index+1];
nums[index+1]=掉期;
swapflag=true;
}
}//内端
}//外端
System.out.println(“\n排序后的数组内容”
+“\n**********”;
对于(int index=0;index
}

`package projStudent;
导入java.util.Scanner;
公开课成绩
{
//delcare扫描仪作为keyb
静态扫描仪keyb=新扫描仪(System.in);
//声明字段
静态字符串studentForename[];
静态字符串student姓氏[];
静态int[]studentResult;
静态int指针;
//建造师
UnitResults(int sizeofclass)
{//构造函数的开始
studentForename=新字符串[sizeofclass];
student姓氏=新字符串[sizeofclass];
studentResult=newint[sizeofclass];
指针=0;
}//构造函数结束
public boolean add(String studentForename[],String studentnames[],
int studentResult[]
{//add方法的开始
if(指针==studentResult.length)
{//if语句的开头
System.out.println(“对不起,数组已满”);
返回false;
studentResult[pointer]=studentResult[];
指针+;
}//if语句结束
}//添加结束方法
公共布尔删除(int元素)
{//delete方法的开始
元素=元素-1;
如果((元素>=0)和(&(元素<指针))
{//if语句的开头
for(int index=(元素+1);indexstudentResult[index+1])
{//交换例程
排序=studentResult[索引];
studentResult[index]=studentResult[index+1];
studentResult[index+1]=排序;
swapflag=true;
}
}
}//while循环结束
}//分类结束

}`

不幸的是,您的帖子令人困惑,因为您没有包括一些内容,例如您正在排序的当前数组是什么。不过,如果我正确理解你的问题


不管使用哪种语言,您的策略都会涉及到如何交换元素的更改。如果数组由复合数据组成,则只需在交换中赋值即可。如果数据分散,则交换需要交换每个变量。您总是可以将数组的索引排序到另一个数组中,然后使用该数组间接引用第一个数组,以进行排序访问。

Java编程语言有许多功能可以帮助您解决所遇到的问题,第一个是包含适当的数据结构和方法,用于操作这些数据结构中的对象

首先也是最重要的,我建议使用java类来表示单人实体。。。试想一下,当你查找一个人的信息时,你不需要查阅三本单独的书,或者计算机屏幕,或者你拥有的东西,当所有这些信息都可以组织到一个地方。例如,对于上述人员,您可以使用以下内容:

public class Person implements Comparable<Person> {
    public String firstName;
    public String lastName;
    public int result;

    public Person(String fn, String ln, int r) {
        firstName = fn;
        lastName = ln;
        result = r;
    }

    public int compareTo(Person otherPerson) {
       return lastName.compareTo(otherPerson.lastName);
    }

}
if(persons[index].compareTo(persons[index+1]) > 0) {
    ...
}
我只是想问问你

为什么要创建班级学生ie

并把它们放在一些收藏清单上 您将它们放入3个不同的阵列中


您是否意识到,如果列表中有它们,您可以使用
Collections.sort()对它们进行排序?

我建议您为此使用列表。 首先创建一个对象。例如,包含“Forname”、“Surename”、“Result”成员的“Person”。然后用这些对象填充列表,实现接口Comparable并使用Collection.sort()方法

class-Person实现可比性
{
私有字符串forname;
私家姓;
私人内部评级;
公众人物(
if(persons[index].compareTo(persons[index+1]) > 0) {
    ...
}
class Student{
     private String studentForename;
     private String studentSurname;
     private int studentResult;
//setters and getters
}
class Person implements Comparable<Person>
{
   private String forname;
   private String surname;
   private int rating;

   public Person(String forename, String surname, int rating)
   {
         this.forname = forename;
         this.surname = surname;
         this.rating = rating 
   }

  public int compareTo(Person p) {
       if(p.rating == this.rating) 
          return 0;
       else if(p.rating < this.rating) 
            return -1;

       return 1;  
  }


}

class Test{

    public static void main(String[] args){

        List<Person> personList = new ArrayList<Person>();

         Person p1 = new Person("John","Smith",10);
         Person p2 = new Person("Max","Muster",20);
         Person p3 = new Person("Sarah","Clark",15);

         personList.add(p1);
         personList.add(p2);
         personList.add(p3);

         personList.sort();
    }

}