Java 使用arraycopy从数组中删除项
使用arraycopy从阵列中删除项目时遇到问题。 我有两种方法find(查找要删除的项的索引)和find 删除(执行删除操作)。 它不会删除任何内容。先谢谢你Java 使用arraycopy从数组中删除项,java,arrays,Java,Arrays,使用arraycopy从阵列中删除项目时遇到问题。 我有两种方法find(查找要删除的项的索引)和find 删除(执行删除操作)。 它不会删除任何内容。先谢谢你 public void find(Comparable value2){ Scanner sc = new Scanner(System.in); Comparable value = value2; if (empty() == true){ System.out.println("The
public void find(Comparable value2){
Scanner sc = new Scanner(System.in);
Comparable value = value2;
if (empty() == true){
System.out.println("The array is empty");
}
else{
int bsValue = Arrays.binarySearch(sa,value);
System.out.println("The index is: " + bsValue);
delete(bsValue);
}
}
public void delete(int bs){
int location = bs;
Comparable[] tempArray = new Comparable[sa.length -1];
System.arraycopy(sa, 0, tempArray, 0, location);
if (sa.length != location){
System.arraycopy(sa, location +1 , tempArray, location, sa.length - location - 1);
}
}
您可以分配
tempArray
,将数据复制到其中,然后放弃引用。因此,原始数组(sa
)保持原样
您可能想让sa
指向新数组:
sa = tempArray;
通过深度复制sa创建tempArray的一个新对象,这将为您完成这项工作注意,您不必编写
(empty()==true)
。您只需编写(empty())
(一种更好的方式)。谢谢您,我在您第一次发表评论后更改了它。现在可以了。我一直在看这个!