如何将对象从列表移动到另一个列表两次并以不同的方式设置对象变量

问题描述 投票:0回答:2

我对将对象分配给具有几乎相同对象的数组列表有疑问,这些对象来自另一个列表,我想将其添加到数组列表两次,在将其添加到另一个列表之前,我需要在这些对象中设置变量值.

这是代码,

ArrayList<ClassCourse> courses = new ArrayList<ClassCourse>();
ArrayList<ClassCourse> _courses = new ArrayList<ClassCourse>();

int index = 0;
for( int i = 0; i < courses.size(); i++ )
{
    ClassCourse t = courses.get(i);
    if(t.getSks()==4)      
    {
        i--;
        t.setSks(2);
        t.setIndex(index); // I want to set this one
        index++;
    }
    else
    {
        t.setIndex(index); // I want to set this one
        index++;
    }
    _courses.add(t);
}

问题是当我通过打印来检查列表时

for( ClassCourse t : _courses )
    System.out.println( t.getIndex() + " " + t.getName() + " " +
            t.getCourseCode() + " " + t.getSks() );

这就是我得到的

1 Visi 电脑 A 2
1 Visi 电脑 A 2
2 Matematika Diskrit C 3
4 Jaringan Nirkabel 和 Komputasi Bergerak A 2
4 Jaringan Nirkabel 和 Komputasi Bergerak A 2
5 Pemograman 框架 .NET A 3
6 Perancangan 和分析算法 E 3
8 终端分销系统 A 2
8 终端分销系统 A 2
9 马特马蒂卡磁盘 D 3
11 玛纳杰门普罗耶克佩兰卡特鲁纳克 A 2
11 玛纳杰门普罗耶克佩兰卡特鲁纳克 A 2

我无法让指数的价值以正确的方式增加

java list arraylist
2个回答
1
投票
 if(t.getSks()==4)      
{
    i--;
    t.setSks(2);
    t.setIndex(index); // I want to set this one
    index++;
}

我猜你正在递减 i 以便该对象被添加两次。但请记住,它是添加到列表中的同一对象。因此,当您设置 t.setIndex(index) 时,它将更改上一次迭代的索引值。 这是因为 java 只处理引用。因此,courses.get(0) 和 course.get(1) 返回对同一对象的引用,从而产生此行为。 如果您希望索引不同,那么您可能需要克隆该对象并将其再次添加到列表中。您需要仔细考虑并决定是否需要该对象的另一个副本。


0
投票

Buatlah 程序 perkalian matriks 2 维数据元素整数mengikuti spesifikasi berikut: A。 Dimensi dari tiap-tiap array diterima dari user, oleh sebab itu array harus dialokasikan secara 迪纳米克。 Ini dilakukan di fungsi main.(ukuran array 1 adalah m1 x n1; ukuran array 2 adalah m2 x n2;迪马纳 m1,m2 阿达拉巴里斯 丹 n1,n2 阿达拉科洛姆) b. 2 buah 阵列 yang dikalikan Harus 兼容,yaitu n1 == m2 (jumlah kolom 阵列 pertama Harus sama dengan jumlah baris array kedua) C。 Perkalian dilakukan di sebuah fungsi dengan 原型: int **perkalian(int **array1, int **array2); Fungsi perkalian dipangil oleh fungsi main。双重间接性 指针。 Anda dapat menyesuaikan prototipe sesuai kebutuhan。阳喷参数真菌 menerima 2 指针 ke 数组 2 维。 d. Fungsi主Mencetak阵1、阵2、dan阵yang Hasil Perkalian。 e. Tambahkan:NIM – Nama Anggota sebagai komentar pada baris awal 计划 (sebelum penyertaan pustaka) secara berurut 上升。 F。 Simpan 程序 dengan nama:perkalianArray.c.

© www.soinside.com 2019 - 2024. All rights reserved.