java动态数组、集合类、以及数组辅助工具的简单使用

一、封装好的动态数组:

     java、C#在定义数组的时候需要指定数组长度,如果数组需要可变长度,那么使用ArrayList或其他的集合类来解决,Vector是同步的而ArrayList是非同步的,Vector性能差些。

    ArrayList 是可变长度的,初始化是10个长度,没有赋值的都是null, 超过10个后变成20个了,一直按10的倍数来递增的。见下图:



java为ArrayList封装了很多使用的方法,如add等,这里就不再赘述。

二、自定义动态字串数组:

    正如ArrayList的内部实现,所谓的可变长度,就是往里面放值直到放满后再重新new一个更加长的数组,把之前放的值重新再放一次,这个时候就有剩余的空间继续放值了。根据这个思路,我们可以自定义一个工具类,来动态的改变数组的长度,给数组添加元素。

	private static String[] insert(String[] arr, String str)
    {
        int size = arr.length;        
        String[] tmp = new String[size + 1];      
        
        System.arraycopy(arr, 0, tmp, 0, size);   
        
        tmp[size] = str;        
        return tmp;
    }


    这样我们在使用的时候可以给数组随意初始化一个长度,然后利用该工具动态改变数组,而不用担心越界的问题。


综合上面的总结,通过下面的代码来对比一下各自的使用:

		
		List<TemplateDetails> templateDetailsList=commonEao.findResultListByEqual(TemplateDetails.class, equalFields);
		
		//固定长度
		String[] pks= new String[templateDetailsList.size()];
		//数组集合
		List<String > pksList=new ArrayList<String>();
		Vector< String > pksVector= new Vector<String>();	
		
		for (TemplateDetails templateDetails : templateDetailsList) {
			//给已确定长度的数组添加元素
			ArrayUtils.add(pks, templateDetails.getId());
			//动态改变数组长度并增加元素
			pks = insert(pks,templateDetails.getId() );	
			//ArrayList动态数组的集合
			pksList.add(templateDetails.getId() );
			//安全了线程,降低了性能,jdk1.5版本(过时)
			pksVector.add(templateDetails.getId());			 			
		}
三、数组操作工具类:

    工具类一般都是静态的:

System.arraycopy(arr, 0, tmp, 0, size);   
ArrayUtils.add(pks, templateDetails.getId());
自定义的封装:
pks = insert(pks,templateDetails.getId() );	
    不怕不知道就怕不知道,这些工具类,还有很多其他的操作,具有小巧灵活强大的特点,往往会起到很关键的作用,这里就不再赘述这些工具的其他的方法。在编程中,通过了解一些内部实现,可以自定义一些小辅助工具,更方便程序开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值