小编Sam*_* kh的帖子

为什么在一个ArrayList中改变一个对象会在所有其他ArrayLists中改变它?

我正在制作一个cpu调度模拟器(用于学校项目).我的功能有问题roundRobin.当我这样做c.get(i).jobTime -= 2;,c.get(i).jobTime -= 1;它影响我的其他ArrayLists,所以我不能做我的其他功能.在我打电话之前roundRobin2我的名单是完全正常的.为什么会这样?

例如,这就是我的list4样子roundRobin2

list 4: [Job101 0, Job102 0, Job103 0, Job104 0, Job105 0, Job106 0]

这就是我在文件中读取的方式,并将Jobs对象放入我ArrayList的文件中.

    Scanner input = new Scanner(new File("testdata1.txt"));
    ArrayList<Jobs> list = new ArrayList<Jobs>();
    ArrayList<Jobs> list2 = new ArrayList<Jobs>();
    ArrayList<Jobs> list3 = new ArrayList<Jobs>();
    ArrayList<Jobs> list4 = new ArrayList<Jobs>();


    Jobs first;

    while(input.hasNext())
    {
        first = new Jobs(input.next(), input.nextInt());
        list.add(first);
        list2.add(first);
        list3.add(first);
        list4.add(first);
    }

    input.close();
Run Code Online (Sandbox Code Playgroud)

这是我的 …

java scheduling arraylist round-robin

3
推荐指数
1
解决办法
1292
查看次数

为什么不使用switch case的声明?

我想在明天的办公时间去问老师之前得到一些信息.

我们有项目可以做类似iclicker问题回答收集器的事情.他告诉我们要避免使用switch case语句.我只是想知道为什么以及为什么这个领域的人不喜欢使用它们,还有什么选择呢?而且我怀疑他是否希望我们使用if语句.

我认为我们必须使用多态/接口,但我只是不敢说清楚,切换案例似乎非常直接.

谢谢.

java polymorphism interface switch-statement

0
推荐指数
1
解决办法
1359
查看次数