求助数组删除操作问题

luyaocode 2021-03-16 11:20:21
//删除指定位置元素,并返回原数组
class Del2{
static String[] del2(String[] arr,int index) {//index从1开始
String[] arr2=new String[arr.length];
arr2=arr;
System.arraycopy(arr,index,arr,index-1,arr.length-index);
arr[arr.length-1]=null;
System.out.println("######新数组#######");
for(String m:arr) {
System.out.println(m);
}

System.out.println("######旧数组#######");
for(String m:arr2) {
System.out.println(m);
}
return arr2;
}

为什么输出的新旧数组是一样的?
######新数组#######
aa
bb
dd
ee
null
######旧数组#######
aa
bb
dd
ee
null
...全文
284 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuge_Bwqz 2021-03-17
  • 打赏
  • 举报
回复
arr2指向了arrr , arr2 和arr 是同个东西. 所以看到是一起变化的
luyaocode 2021-03-16
  • 打赏
  • 举报
回复
引用 1 楼 fai_jai 的回复:
删除指定位置元素可以用index去删,直接下表置null
你的方法可以,但我不懂为什么将数组arr传给arr2之后,改变arr之后arr2也会改变
fai_jai 2021-03-16
  • 打赏
  • 举报
回复
删除指定位置元素可以用index去删,直接下表置null
luyaocode 2021-03-16
  • 打赏
  • 举报
回复
引用 4 楼 立青_的回复:
引用 3 楼 luyaocode 的回复:
[quote=引用 1 楼 fai_jai 的回复:]删除指定位置元素可以用index去删,直接下表置null
你的方法可以,但我不懂为什么将数组arr传给arr2之后,改变arr之后arr2也会改变
你都arr2=arr;了[/quote] 明白了,传递的是地址
luyaocode 2021-03-16
  • 打赏
  • 举报
回复
我明白了,=传递的是地址
立青_ 2021-03-16
  • 打赏
  • 举报
回复
引用 3 楼 luyaocode 的回复:
引用 1 楼 fai_jai 的回复:
删除指定位置元素可以用index去删,直接下表置null
你的方法可以,但我不懂为什么将数组arr传给arr2之后,改变arr之后arr2也会改变
你都arr2=arr;了

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧