【发布时间】:2015-02-16 08:57:42
【问题描述】:
我需要将数组转换为数组列表,但不确定如何执行此操作,我已经查看了此处的其他文章,但似乎无法让它工作,如果有人可以为我提供一些指针作为以及如何将其转换为一个很棒的数组列表。
import java.util.*;
public class SearchExamResults
{
public static void main(String[] args)
{
Result[] resultsArray = new Result[20];
input(resultsArray);
sortByMark(resultsArray);
output(resultsArray);
}
public static void input(Result[] array)
{
Scanner kybd = new Scanner(System.in);
for (int i = 0; i < array.length; i++)
{
System.out.println("Candidate " + (i + 1));
System.out.print("\tName: ");
String name = kybd.nextLine();
System.out.print("\tMark: ");
int mark = kybd.nextInt();
kybd.nextLine(); //to flush the kybd buffer
array[i] = new Result(name, mark);
}
}
public static void sortByMark(Result[] array)
{
//selection sort
for (int pass = 1; pass < array.length; pass++)
{
int lastElement = array.length - pass;
int largePos = findLargestMark(array, array.length - pass);
if (largePos != array.length - pass)
{
Result temp = array[largePos];
array[largePos] = array[lastElement];
array[lastElement] = temp;
}
//this is for testing purposes only
//output(arr);
}
}
public static int findLargestMark(Result[] array, int last)
{
int largestPos = 0;
for (int i = 1; i <= last; i++)
{
if (array[i].getMark() > array[largestPos].getMark())
{
largestPos = i;
}
}
return largestPos;
}
public static void output(Result[] array)
{
System.out.println("\nExam results");
System.out.println("============");
for (int i = 0; i < array.length; i++)
{
System.out.printf("\t%-20s\t%d\n", array[i].getName(), array[i].getMark());
}
}
}
【问题讨论】:
-
到目前为止您做了哪些研究/尝试了哪些事情?
-
所有这些代码的意义何在?请仅向我们展示相关部分,人们将更有可能提供帮助。
-
我尝试使用stackoverflow.com/questions/9811261/… 的技术,但无法让它发挥作用