gpt4 book ai didi

Java数组: how to insert delete items in array 1D and 2D

转载 作者:行者123 更新时间:2023-12-02 09:32:33 25 4
gpt4 key购买 nike

我开发了一个 GUI 来管理 3D 对象。例如,Bezier 曲线中的 PolyLine(多段线链接)点数组、Bezier 曲面中的点的 2D 数组、Double 数组 1D、Double 数组 2D。我想开发一个类,以使用通用或其他形式以单一形式插入/删除行或列上的项目。

这是我的类文件:(我认为它不起作用)

    package one.empty3.library.core;

import java.util.Arrays;

/**
* Created by manue on 24-07-19.
*/
public class EcArrays<T>
{
public T[] deleteRowAtDim1(T[] array, int pos)
{
T[] ts = Arrays.copyOf(array, array.length-1);
int i0=0;
for(int i=0; i<ts.length; i++) {
if(pos!=i)
{
ts[i] = array[i0];
i0++;
}
}
return ts;
}
public T[][] deleteRowAtDim2(T[][] array, int pos)
{
T[][] ts = (T[][]) new Object[array.length-1][];
int i0=0;
for(int i=0; i<ts.length; i++) {
if(pos!=i)
{
ts[i] = array[i0];
i0++;
}
}
return ts;
}
public T[][] deleteColAtDim2(T[][] array, int pos)
{
T[][] ts = (T[][]) new Object[array.length][];
for(int i=0; i<array.length;i++)
{
ts[i] = deleteRowAtDim1(array[i], pos);
}
return ts;
}

T[] insertRowAtDim1(T[] array, int pos, T value)
{
T[] ts = Arrays.copyOf(array, array.length+1);
int i0=0;
for(int i=0; i<ts.length; i++) {
if(pos!=i)
{
ts[i] = array[i0];
i0++;
}
else {
ts[i] = value;
}
}
return ts;
}
public T[][] insertRowAtDim2(T[][] array, int pos, int rowSize)
{
T[][] ts = (T[][]) new Object[array.length+1][];
int i0= 0;
for(int i=0; i<ts.length;i++)
{
if(i!=pos) {
ts[i] = array[i0];
i0++;
}
else {
ts[i] = (T[]) new Object[rowSize];
}
}
return ts;
}
public T[][] insertColAtDim2(T[][] array, int pos)
{
T[][] ts = (T[][]) new Object[array.length][];
for(int i=0; i<array.length; i++)
{
ts[i] = insertRowAtDim1(array[i], pos, (T) new Object());
}
return ts;
}

}

我尝试了不同数组对象类的多种方法

最佳答案

根据您的场景,您可以使用像 ArrayList 这样的类的集合您可以动态地插入或删除元素。根据您的情况,您可以像下面这样初始化您的结构:

List<List<T>> dynamicMatrix2D = new ArrayList<List<T>>();

ArrayList 的每个元素代表您的一行(最初为空),您可以在其中添加或删除元素。

关于Java数组: how to insert delete items in array 1D and 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57833409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com