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);
            }
        }
    }
复制代码

 

posted @   漁夫  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示