我正在尝试将原始类“day”的对象添加到链接列表中,这些对象具有称为“classment”的整数值,以便我可以跟踪哪一天先到来。问题是,每次我向此链接列表添加一天并将其“类别”的值更改为其在列表中的排名时,所有先前添加的日期也会将其“类别”的值更改为最后添加的日期。这是代码的简化
public class test {
public static void main(String[] args) {
LinkedList <day> days = new LinkedList<day>();
for(int i=0;i<5;i++){
day dayx = new day(); // Create a new day object here
dayx.classment = i;
days.add(dayx);
dayx = null;
}
for(int i=0;i<5;i++){
System.err.println(days.get(i).classment);
}
}
结果就是
4
4
4
4
4
我知道这似乎是一个非常简单的问题,网上已经有很多解决方案,但我找到的所有结果都是用 C++ 编写的,而且我无法将解决方案转换为 java。甚至可能是我没有完全理解链表的概念,但我确实尝试过常规数组,但最终遇到了同样的问题。
我只需要它们是单独的日子,具有单独的变量和值。我希望结果只是:
0
1
2
3
4
这也是日间课程的简化:
public class day {
static Double startingRest=0.0, currentRest=0.0;
static int rownumber=-1,N=0;
static String date,title;
static int classment;
public day(){
rownumber=-1;
N=0;
startingRest=0.0;
currentRest=0.0;
}
}
所以我创建了一个简单的日间课程
package org.example;
public class Day {
private int classment;
public Day() {
// Default constructor
}
public Day(int classment) {
this.classment = classment;
}
public int getClassment() {
return classment;
}
public void setClassment(int classment) {
this.classment = classment;
}
}
然后删除在代码中分配 null ,一切正常
public static void main(String[] args) {
LinkedList<Day> days = new LinkedList<>();
for(int i=0;i<5;i++){
Day dayx = new Day();
dayx.setClassment(i);
days.add(dayx);
}
for(int i=0;i<5;i++){
System.err.println(days.get(i).getClassment());
}
}