任务是创建一个程序,该程序用相应的标记组织用户名,并按降序显示。我问的是如何同时对两个数组进行排序,只是通过比较其中一个数组的元素。作为限制,我不能使用类,只能使用关联的数组。
KalturaMediaEntryFilter filter = new KalturaMediaEntryFilter();
filter.typeIn = "1";
filter.orderBy = KalturaMediaEntryOrderBy.NAME_DESC.toString();
KalturaMediaListResponse listResponse = mediaService.list(filter);
接受用户输入的按钮
int [] ArrMarks = new int [5];
String [] ArrNames = new String [5];
显示按钮,包括对代码进行分类的部分,这是我不确定的主要部分。
for (int i = 0; i < 5; i++)
{
ArrNames[i] = JOptionPane.showInputDialog("Enter a Name:");
ArrMarks[i] = Integer.parseInt(JOptionPane.showInputDialog("Enter a mark:"));
}
答案 0 :(得分:2)
首先,我想提出一个建议。使用列表而不是数组。这种编码不是一种很好的传统编码方式。我将展示一种处理问题的传统方法。如果你愿意,可以选择这个。
使用以下内容创建另一个类Mark.java
class Mark {
Integer mark;
String name;
public Integer getMark() {
return this.mark
}
public void setMark(Integer mark) {
this.mark = mark
}
public String getName() {
return this.name
}
public void setName(String name) {
this.name = name
}
}
然后在您当前的课程中创建此课程的List
。
List<Mark> marks = new ArrayList<Mark>();
然后,在阅读用户的内容后,您可以将其添加到列表中,如下所示
for (int i = 0; i < 5; i++)
{
Mark mark = new Mark();
String name = JOptionPane.showInputDialog("Name:");
Integer mark = Integer.parseInt(JOptionPane.showInputDialog("Mark:"));
marks.add(mark)
}
编写一个名为MarkComparator.java
的比较器类。它涉及排序部分。
public class MarkComparator implements Comparator<Mark> {
@Override
public int compare(Mark m1, Mark m2) {
return m1.getMark().compareTo(m2.getMark());
}
}
使用
Collections.sort(marks, new MarkComparator());
现在List<Mark>
的{{1}}将被排序。
然后您可以以相同的方式查看列表。
marks
答案 1 :(得分:1)
我的问题的解决方案需要使用排序技术对名称和标记进行排序,以便程序将相应的标记打印到名称。
for(int i = 0; i < 5-1; i ++)
{
for(int j = i +1; j < 5; j++)
{
if (ArrMarks[i] < ArrMarks[j])
{
//sorting the names
String temp = ArrNames[i];
ArrNames[i] = ArrNames[j];
ArrNames[j] = temp;
//sorting the marks
int temp1 = ArrMarks[i];
ArrMarks[i] = ArrMarks[j];
ArrMarks[j] = temp1;
}
}
txaDisplay.append("Names:"+"\t\t"+"Marks"+"\n");
txaDisplay.append(ArrNames[i]+"\t\t"+ArrMarks[i]+"\n");
}