java - 通过折叠所有元素来删除二维数组中的元素

标签 java arrays multidimensional-array

我正在制作一个程序来跟踪员工信息。我有一个包含记录 ([employee][piece_of_data]) 的二维数组,我希望能够通过循环数组并使当前记录等于以下记录来删除记录。

现在它正在删除所选记录的前面记录而不是当前记录,似乎无论我如何操作它,它都不会删除正确的记录。

这是我的代码:

//Delete current record, collapse records into it
    for (int iLoop = iEmployee; iLoop < iEmployeeCount; iLoop++){
        for (int iLoop2 = 0; iLoop2 <= 20; iLoop2++){
            sData[iLoop][iLoop2] = sData[iLoop + 1][iLoop2];
        }
    }

最佳答案

我建议您不要使用这个奇怪的双数组,而是以正确的方式解决这个问题。目前的代码比较困惑且不可维护。更糟糕的是,它似乎可能会重复记录,因为在左移 2D 数组中的所有列后,最后一列将包含倒数第二列的重复项。

Java 是一种面向对象的语言。使用对象。

//declare a class to store the info about one employee
//this will replace one column in your double array
public class Employee {
 //each one of these fields corresponds to one cell in your double array
 public string data1; 
 public string data2;
 public string data3;
}

然后将它们存储在链表中:

//this is just an example of how you would add employees to a list instead of an array
LinkedList<Employee> employees = new LinkedList<>(); //make a linked list
Employee toAdd = new Employee();                     //make an employee
toAdd.data1 = "example";                             //set up his data
toAdd.data2 = "setting";
toAdd.data3 = "fields";
employees.add(toAdd);                                //add him to the list

然后要删除员工,不要使用数组执行这种复杂且低效的方法,只需获取所需员工的链接并调用即可

employees.remove(iEmployee);

其中 iEmployee 是要删除的员工列表中的编号。

关于java - 通过折叠所有元素来删除二维数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37956035/

相关文章:

python - 在python中总结一个多维列表

java - 如果项目从 Eclipse 运行,则 Instanceof 可以工作,但在导出时则不行

c++ - CPP/JUCE 音频编程框架 - slider 阵列不工作 - 单个 slider 工作

c - 在数组 C 中的每个偶数后添加一个 0 字符

c - C 中复制 3d 数组的函数?

php - 按一个列值对行数据进行分组,并使用另一列值填充每组中的子数组

php - 使用指定的排序规则对多列上的关联数组数组进行排序

java - cucumber Selenium - 填写网络表格

java - 使用 Gradle 找不到 JUnit 和 Robolectric

java - 在java中动态调用类方法?