Collection集合总结,List和set集合的用法,HashSet和LinkedHashSetde用法

时间:2023-01-31 11:22:29

首先:Collection是List集合和Set集合的父类,同时,它们三个都为接口,不能直接实例化,所以需要,List和set的子类来实例化。

List的子类:

ArrayList类和LinkedList

1、ArrayList类:底层采用的是数组结构

 LinkedList类:底层采用的是链式结构,每次查询都是从头或者从尾开始,查询速度相对较慢

        特有方法:removeFirst  removeLast

Set的子类:

HashSet类和LinkedHashSet

1)Set接口概述
        一个不包含重复元素的 collection,无序(存储顺序和取出顺序不一致),唯一。  (List有序,即存储顺序和取出顺序一致,可重复)
    2)Set案例
        存储字符串并遍历
        存储自定义对象并遍历
 
2、HashSet
    1)HashSet类概述
        不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。
    2)HashSet如何保证元素唯一性
        底层数据结构是哈希表(元素是链表的数组)
        哈希表依赖于哈希值存储
        添加功能底层依赖两个方法:
            · int hashCode()
            · boolean equals(Object obj)
代码实例:
 1 package com.aaa.demo2;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 public class HashSetDemo {
 7     public static void main(String[] args){
 8         Set<String> set=new HashSet<String>();
 9         set.add("hello");
10         set.add("java");
11         set.add("hello");
12         //for增强
13         for (String s:set){
14             System.out.println(s);
15         }
16     }
17 }

输出结果(不存储重复的):

hello
java