簡體   English   中英

在Java中創建列表的2D動態數組

[英]Creating a 2D dynamic array of lists in Java

我正在嘗試在Java中實現列表的2D動態數組,以存儲給定的Student和Week對象的Course對象的列表。

沿線, List<List<List<Course>>> listOfCoursesInWeekForStudent = new ArrayList<List<List<Course>>>();

您能否告訴我如何創建這樣的結構,以及如何對它執行簡單的操作(包括添加和獲取)。

謝謝

您能否告訴我如何創建這樣的結構,並對它執行簡單的操作,包括addget

該數據結構是List<List<List<Course>>> ,所以它是一個List包含類型的元素List<List<Course>>

使用以下命令完全按照顯示的方式創建它:

List<List<List<Course>>> listOfListOfListOfCourses = new ArrayList<>();

添加和獲取元素照常工作,只需記住元素的類型為List<List<Course>>

List<List<Course>> element = ...
// Add element
listOfListOfListOfCourses.add(element);
// Get index of element
int index = listOfListOfListOfCourses.get(element);

但是,您可能已經注意到,數據結構很復雜 我敢肯定,在您的確切上下文中,有一個更合適的數據結構。 不幸的是,您沒有提供有關特定任務的其他信息。 您可以提供它並發表評論。


讓我們嘗試創建一個簡單的示例,以了解如何使用這種數據結構。 因此

List<Course>             // All courses of one semester
List<List<Course>>       // All semesters of one university
List<List<List<Course>>> // All universities of one country

在這個特定的示例中,您很容易看到,如果您創建一些小的包裝器類(例如,

public class Semester {
    private List<Course> mCourses;

    public Semester(List<Course> courses) {
        this.mCourses = courses;
    }

    public List<Course> getCourses() {
        return this.mCourses;
    }
}

public class University {
    private List<Semester> mSemesters;

    public University(List<Semester> semesters) {
        this.mSemesters = semesters;
    }

    public List<Semester> getSemesters() {
        return this.mSemesters;
    }
}

使用此方法,您的數據結構可分解為

List<University> // Universities of one country

更容易閱讀和理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM