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 @ 2022-07-06 13:32  漁夫  阅读(60)  评论(0)    收藏  举报