【问题标题】:I need to convert an Array to an ArrayList help please, not sure how to go about it? [duplicate]我需要将 Array 转换为 ArrayList 帮助,不知道该怎么做? [复制]
【发布时间】: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/… 的技术,但无法让它发挥作用

标签: java arrays arraylist


【解决方案1】:

您可以使用Arrays.asList(T...) 或者您可以通过像这样遍历所有元素来自己做:

ArrayList<Result> list = new ArrayList<Result>();
for(Result r : resultsArray) {
    list.add(r);
}

PS:您可以使用搜索功能查看之前是否有人问过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    相关资源
    最近更新 更多