我有標題中提到的問題。我會預先介紹每一步,讓您了解我正在嘗試做的事情。首先,為了總結我的課程,我在下面展示了它們:Classes|___ Starter.java (main class)|___ Line.java|___ CrossSection.java|___ SectionAssigner.java在我的主類中,我創(chuàng)建了 ArrayList 變量,其中包含來自Line、SectionAssigner和CrossSection類的對象:public static void main(String[] args) { ArrayList<Line> lines = new ArrayList<Line>(); ArrayList<Line> lineKeeper = new ArrayList<Line>(); ArrayList<CrossSection> crossSections = new ArrayList<CrossSection>(); ArrayList<SectionAssigner> sectionAssigners = new ArrayList<SectionAssigner>();}SectionAssigner類的構造函數(shù)有兩個參數(shù),即ArrayList和CrossSection:public SectionAssigner(ArrayList<Line> lineList, CrossSection crossSection){ this.lineList = lineList; this.crossSection = crossSection;}此外,SectionAssigner類通過getLinesLength()函數(shù)返回所有行的長度(this.linelist ) :public ArrayList<Double> getLinesLength(){ for (int k=0; k<this.lineList.size(); k++) { this.returnedIndex.add(this.lineList.get(k).getLength()); } return this.returnedIndex;}在我的主類的以下代碼行中,我詢問用戶“您想將哪些線和橫截面分配給 SectionAssigner?”,然后我將用戶線選擇保存在linekeeper變量中,將橫截面索引保存在crossSectionIndex變量中。然后,使用這些數(shù)據(jù),我從SectionAssigner創(chuàng)建一個新變量,它也被插入到sectionAssigners ArrayList:sectionAssigners.add(new SectionAssigner(lineKeeper, crossSections.get(crossSectionIndex)));最后,我向用戶展示了哪些線路分配給了哪些部分:System.out.println("SectionAssigned" + counter + ": " + sectionAssigners.get(counter).getLinesLength() ); 這些代碼和我正在嘗試做的事情可能很難理解,所以我將在下面用一個例子來說明它們:假設用戶有 6 行索引為Line0Line1Line2Line3Line4Line5之后,用戶想要像下面這樣進行橫截面分配:SectionAssign0: Line0, Line1SectionAssign1: Line2, Line3, Line4, Line5因此,在上面的示例中,控制臺應該在 SectionAssign0 中顯示第 0 行和第 1 行;SectionAssign1 中的 line2、line3、line4、line5。但是控制臺顯示如下而不是:SectionAssign0: Line0, Line1, Line2, Line3, Line4, Line5SectionAssign1: Line0, Line1, Line2, Line3, Line4, Line5我不完全了解 ArrayList 的用法。一個類中的一個 ArrayList 的元素是否保留從該類創(chuàng)建的所有對象?還是我犯了任何致命錯誤?
為什么一個類中只有一個數(shù)組列表保存所有對象的變量?
幕布斯7119047
2022-12-15 11:02:02