【发布时间】:2020-05-01 19:43:50
【问题描述】:
我的作业问题是这样的:
用 Java 编写一个程序,将 20 个不同的朋友姓名和电话号码存储在两个不同的一维数组中。现在按字母顺序排列所有姓名,并显示所有姓名及其各自的电话号码。
我想出了这段代码
public class Q7
{
public static void main()
{
String name[]={"Dean","Sean","Daniel","Sheldon","Adi","Raj","Steve","Ava","Riley","Jessie"};
String Temp[]=new String[10];
for(int i=0;i<10;i++)//Creating another unsorted array to find respective telephone numbers later
{ Temp[i]=name[i];}
long number[]={7747872132L,7975117568L,4008269466L,8028612214L,9448011416L,949153772L,9591817794L,9845666946L,9448638374L,8182248864L};//telephone numbers of people in name[] respectively
String temp="";
for(int i=0;i<name.length;i++)//Sorting
{
for(int j=i+1;j<name.length;j++)
{
if(name[j].compareTo(name[i])<0)
{
temp=name[i];
name[i]=name[j];
name[j]=temp;
}
}
}
System.out.println("Name\t\tTelephone Number");
for(int i=0;i<name.length;i++)
System.out.println(name[i]+"\t\t\t"+number[Temp.IndexOf(name[i])]);//This is where I need help
}
}
我面临的问题是我不知道用各自的名字打印电话号码。请帮帮我,这是我的学校作业。
【问题讨论】:
-
您的“线性搜索”是一种排序,您只对其中一个数组进行排序(每当您交换
number时,您需要交换number的元素 - 或 更好,创建一个包含name和number字段的POJO [plain old java object] 并对其进行排序)。 -
我总是对这两者感到困惑,我仍然是java的初学者。我已编辑问题谢谢您的通知
-
@ElliottFrisch 你能告诉我如何同时交换
number和name的元素吗?这将是一个很大的帮助 -
您只需在循环内的 if 语句中重复相同的过程,但随后是电话号码 - 当然还有一个不同的
temp变量。 -
您首先在循环中的同一索引处对姓名和电话号码进行排序。然后创建一个单独的循环以按顺序打印出排序后的名称和数字。
标签: java arrays string sorting indexing