ArrayList集合特性

1、ArrayList概述

基于数组实现的,是一个动态动态数组,其容量能自动增长,动态增加内存
线程不安全,只能在单线程环境下, 多线程可以采用Collections.synchronizedList(list)返回一个线程安全的ArrayList类,也可以使用并发包下的CopyOnWriteArrayList类。
他实现了序列化接口,所以能够序列化,还实现了RandomAccess接口,支持快速随机访问,支持快速随机访问,能通过下标序号进行快速访问,实现类Cloneable接口,能被克隆
每个ArrayList实例都有一个容量,用来指定存储列表元素的数组的大小,并且至少等于列表的大小

2、ArrayList的实现

实现List接口、底层使用数组保存所有元素,其实操作都是对数组的操作。

2.1.私有属性

//elementData存储ArrayList内的元素 transient Object[] elementData;

//size 表示它包含的元素的数量 int size;

  • 关键字 transient

  • Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,此时我们用serialization来保存它,为了在一个特定对象的一个域上关闭serialization,此时就可以在这个域前加上关键字:transient

例子

public class UserInfo implements Serializable {
     
     private static final long serialVersionUID = 996890129747019948L;  
     private String name;  
     private transient String psw;  
   
     public UserInfo(String name, String psw) {
     
         this.name = name;  
         this.psw = psw;  
     }  
   
     public String toString() {
     
         return "name=" + name + ", psw=" + psw;  
     }  
 }  
   
 public class TestTransient {
     
     public static void main(String[] args) {
     
         UserInfo userInfo = new UserInfo("张三", "123456");  
         System.out.println(userInfo);  
         try {
     
             // 序列化,被设置为transient的属性没有被序列化  
             ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream(  
                     "UserInfo.out"));  
             o.writeObject(userInfo);  
             o.close();  
         } catch (Exception e) {
     
             // TODO: handle exception  
             e.printStackTrace();  
         }  
         try {
     
             // 重新读取内容  
             ObjectInputStream in =
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值