Vector集合和HashSet集合介绍
Vector集合
这个集合是java最早的一个集合,它的底层是一个数组。
Vector是线程安全的,但扩容会增长100%
ArrayList是线程不安全的,但扩容增长50%,能有效利用磁盘空间。
特点
有序的,可以存储重复值和null值。
底层是数组实现的,线程安全。结构与ArrayList非常相似,同样是一个线性的动态可扩容数组。
初始容量是10,没有设置扩容增量的情况下以自身的2倍容量扩容,可以设置容量增量,初始容量和扩容量可以通过构造函数public Vector(int initialCapacity, int capacityIncrement)进行初始化。
public static void main(String[] args) { Vector vector =new Vector(); vector.add("西瓜"); vector.add("鸡蛋"); vector.add("哈密瓜"); //遍历.get方法的返回值是一个对象,i是要取对象的下标 System.out.println("-------使用for循环遍历--------"); for (int i = 0; i < vector.size(); i++) { System.out.print(vector.get(i)+" "); } System.out.println(); //遍历,使用枚举器(跟迭代器一样) System.out.println("-------使用枚举器遍历--------"); Enumeration enumeration =vector.elements(); while (enumeration.hasMoreElements()){ System.out.print(enumeration.nextElement()+" "); } System.out.println(); //判断操作 System.out.println("-------判断操作--------"); System.out.println("是否存在西瓜:"+vector.contains("西瓜")); System.out.println("是否存在鸡蛋:"+vector.contains(new String("鸡蛋"))); System.out.println("是否存在榴莲:"+vector.contains("榴莲")); System.out.println("集合是否为空:"+vector.isEmpty()); System.out.println("-------取值操作--------"); System.out.println("取第一个元素的值:"+vector.firstElement()); System.out.println("取最后一个元素的值:"+vector.lastElement()); System.out.println("取下标为1的值:"+vector.get(1)); //删除操作 System.out.println("-------删除操作--------"); vector.remove("西瓜"); System.out.println("删除西瓜:"+"剩余"+vector); vector.remove(new String("鸡蛋")); System.out.println("删除鸡蛋:"+"剩余"+vector); }
HashSet集合介绍
java.util.Set 接口和java.util..ist接口一样,同样继承自collection接口,它与collection 接口中的方法基本一致,并没有对collection接口进行功能上的扩充,只是比collection接口更加严格了。与List 接口不同的是,set 接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
Set集合有多个子类,这里我们介绍其中的java.util.HashSet、java.util.LinkedHashSet这两个集合。
java.util.set接extends collection接口set接口的特点:
1.不允许存储重复的元素
2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历java.utiL.Hashset集合implements set接口
Hashset特点:
1.不允许存储重复的元素
2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
3.是一个无序的集合,存储元素和取出元素的顺序有可能不一致4.底层是一个哈希表结构(查询的速度非常的快)
public static void main(String[] args) { Set<Integer> set = new HashSet<>();//使用add方法往集合中添加元素 set.add(1); set.add(3); set.add(2); set.add(1); //使用迭代器遍历set集合 Iterator<Integer> it = set.iterator(); while (it.hasNext()) { Integer n = it.next(); System.out.println(n); //使用增强for遍历set集合 System.out.println(" -----------"); for (Integer i : set) { System.out.println(i); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本