Java:列表(ArrayList,LinkedList,Vector)

本文介绍了Java中的列表数据结构,包括ArrayList, LinkedList和Vector的区别。详细讲解了如何进行列表与数组之间的转换,以及ArrayList和Vector的创建方法,特别是对于普通列表和类列表的创建。此外,还探讨了LinkedList的特点,并提到了ListIterator迭代器在遍历列表时的作用。" 89839461,8092160,C++构造函数中的成员初始化,"['C++', '编程语言', '面向对象', '成员变量']
摘要由CSDN通过智能技术生成

列表和数组之间相互转换

/**
 * 列表和数组相互转化
 * 数组转列表:List list = new ArrayList(Arrays.asList(arrays));
 *      Arrays.asList(arrays)转成的列表不支持add()和remove() 所以要再转一次
 * 
 * 列表转数组:Object[] arrays = (Object[])list.toArray(new Object[0]) 
 */
public static void main(String[] args) {
   
    //数组转列表
    String[] arrays = new String[]{
   "AA","BB","CC","DD","EE","FF"};

    List list = new ArrayList(Arrays.asList(arrays));

    list.add("GG");
    System.out.println(list);

    //列表转数组
    arrays = (String[])list.toArray(new String[6]);
    System.out.println(Arrays.toString(arrays));
}

三个列表的区别

ArrayList:由数组实现 查询快 增删慢 线程不安全
Vector:由数组实现 查询快 增删慢 比ArrayList运行效率慢 线程安全
LinkedList:由双向链表实现 查询慢 增删快
三个列表增删改查方法一致

Collection

//List继承自Collection
Collection collection = new ArrayList();

/***********************增加元素***************************/
collection.add("zyt");
collection.add("zmx");
collection.add(1);

/********************加强for循环遍历列表********************/
for (Object object:collection){
   
    System.out.println(object);
}

/*********************迭代器器遍历元素**********************/
Iterator it = collection.iterator();
while(it.hasNext()){
   
    Object ss = it.next();
    System.out.println(ss);
    //删除该元素
    it.remove();
}

ArrayList创建普通列表

//创建一个字符串列表
List
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaArrayListLinkedListVector是三种常见的集合类,它们都实现了List接口,但在实现和使用上有一些区别。 1. 实现方式: - ArrayList是基于数组实现的动态数组,可以动态调整数组的大小。 - LinkedList是基于链表实现的,每个元素都包含一个指向前一个和后一个元素的引用。 - Vector也是基于数组实现的动态数组,类似于ArrayList,但是它是线程安全的。 2. 线程安全性: - ArrayListLinkedList不是线程安全的,多个线程同时访问时需要外部同步控制。 - Vector是线程安全的,它的每个方法都使用了synchronized关键字进行同步,可以在多线程环境下使用。 3. 性能: - ArrayList的性能比LinkedList好,因为它直接通过索引访问元素,而LinkedList需要遍历链表才能找到指定位置的元素。 - Vector由于需要进行同步控制,性能相对较差。 4. 插入和删除操作: - ArrayList在末尾插入和删除元素的性能较好,但在间或开头插入和删除元素时,需要移动其他元素。 - LinkedList在任意位置插入和删除元素的性能较好,因为只需更改节点的引用。 5. 使用场景: - 如果需要频繁访问集合的元素,并且对数据的增删操作较少,可以选择ArrayList。 - 如果需要频繁进行插入和删除操作,或者需要使用栈、队列等数据结构,可以选择LinkedList。 - 如果需要在多线程环境使用,可以选择Vector。 总结:ArrayList适用于读取操作频繁的场景,LinkedList适用于频繁插入、删除操作的场景,Vector适用于多线程环境。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值