Java:数组和集合类作为参数传递时的差别(问题解决,谢谢大家提醒)

在项目中遇到List作为参数传递时的行为,引发了对数组与集合参数传递方式的思考。通过测试发现,虽然两者都是引用传递,但数组在方法内部修改不会影响外部变量。问题在于对数组的操作创建了新引用,导致原始数组未被修改。解决方案是理解并正确应用引用传递的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       最近在做项目时遇到一个List集合作为参数传递的问题,想起了以前总结的参数传递,参数传递包括值传递和引用传递,集合类的参数应该属于引用传递,脑子里突然就闪现到了数组,感觉数组也是一种特殊的集合,也应该是引用传递,于是就举了个简单的例子作为测试,但是测试结果大跌眼镜,数组居然没有实现像List集合那样的效果,现将问题罗列出来,请各位前辈指教,等问题解决后会做一下小结。问题如下

       首先定义一个类Test1:  

public class Test1 {
	
	//这部分是针对list的操作,首先定义一个空的list集合容器
	List<String> list=null;
	//用list集合容器作为参数的构造方法
	public Test1(List<String> list)
	{ 
		super();
		this.list=list;
	}
	//对容器增加数据
	public void putList(){
	
		list.add("list1");
		list.add("list2");
	        list.add("list3");
	}
	
	//------------------------------------------------------------------
	
	//这部分是对数组的操作,首先定义一个空的数组
	String[] str=null;
	//用数组作为参数的构造方法
	public Test1(String[] str)
	{
		this.str=str;
	}
	//对数组增加数据
	public void putString()
	{
		str=new String[]{"string1"};
	}
}
      该类中分别定义了对
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值