集合的区别

1.ArrayList、linkedList、Vector区别

ArrayList、linkedList、Vector他们都是集合都实现了List的接口List接口继承了Collection接口)

区别:

ArrayList 和Vector是以数组方式存储数据的

linkedList是以链表的方式实现的(数据更新快,如修改和删除)

ArrayList 的线程不安全,效率会高

Vector的线程安全,效率会低

linkedList 的线程不安全,效率会高

2.set、list、Map的区别

区别:

ListSet具有相似性,它们都是单列元素的集合,它们有一个功共同的父接口,叫Collection

map是双列的集合

list:存储:有序的 可重复的

访问:可以for循环,foreach循环,iterator迭代器 迭代。
set:存储:无序的 不重复的
访问:可以foreach循环,iterator迭代器 迭代
map:存储:存储的是一对一对的映射 ”key=value“,key值 是无序,不重复的。value值可重复

3、Hashset、Hashtable和HashMap的区别

Hashset是set接口的一个实现类(数据不可重复)

Hashtable是Dictionary的子类。(线程安全,数据不允许为空

HashMap是Map接口的一个实现类(线程不安全,数据允许为空)

Hashtable HashMap是以键值队的方式存在的










### Java 集合框架中的集合与静态集合 在Java中,集合是指一系列对象的容器,这些对象可以被存储、检索和操作。Java集合框架位于`java.util`包中[^1]。 #### 动态集合的特点 动态集合允许在其生命周期内的任何时间点添加或移除元素,其大小不是固定的。例如,`ArrayList`继承了`AbstractList`并实现了`List`接口,作为一个数组队列提供了动态调整大小的能力以及相关的添加、删除、修改、遍历等功能[^4]。同样地,对于`Set`接口的不同实现类如`HashSet`、`LinkedHashSet`(它是`HashSet`的一个子类)、`TreeSet`也支持动态增删改查的操作[^2]。 #### 静态集合的概念 相比之下,“静态集合”并不是官方术语,在这里假设指的是通过工具类如`Collections`来创建不可变或者固定尺寸的集合实例的情况。这类集合一旦初始化完成就不能再改变其中的内容;如果尝试对其进行结构性修改,则会抛出异常。`Collections.unmodifiableCollection()`系列方法就是用来返回一个受保护视图的方法之一,该视图内部封装了一个原始可变集合,并阻止外界对其成员进行更改[^3]。 因此,主要区别在于: - **灵活性**:动态集合适用于需要频繁变更数据的应用场景;而静态集合更适合于那些希望确保某些特定时刻的数据状态不会发生变化的情形。 - **安全性**:由于无法对外界暴露修改权限,所以基于现有集合构建出来的只读版本能够有效防止意外篡改带来的风险。 ```java // 创建一个动态列表 List<String> dynamicList = new ArrayList<>(); dynamicList.add("Element"); // 将上述列表转换成不可变形式 List<String> staticList = Collections.unmodifiableList(dynamicList); try { staticList.add("Another Element"); // 这里将会引发UnsupportedOperationException } catch (Exception e) { System.out.println(e.getMessage()); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值