1List接口特点:1是一个有序的集合,存储元素和取出元素的顺序是一样的(存123,取123)

                          2有索引,可使用带索引的方法

java接口 list传参 java中list接口的特点_java

允许存储重复的元素 

2List的子类集合:1ArrayList:查询快 增删慢。底层是一个数组结构

首尾元素的方法,注意,使用

特有的方法不能使用多态

                                            

java接口 list传参 java中list接口的特点_数组_02

                              3Vector:同步 单线程 相对较慢,JDK1.0版本的早期集合。

3Set接口特点:1不允许存储重复元素2没有索引,不能通过普通for循环遍历

                            Set不重复原理:Set接口在每次使用add添加元素时,还会默认使用

                           .hashCode方法和equals方法来比较是否重复

4Set接口的子类:1HashSet:底层是一个哈希表解构,是一个无序的集合,存储和取出元素的

                                                 顺序有可能不一样。               

package com.bed.javahighclass;

import java.util.Iterator;
import java.util.Set;

public class HashSet {
    public static void main(String[] args) {
        Set<String> set=new java.util.HashSet<>();
        set.add("b");
        set.add("e");
        set.add("d");
        set.add("b");
        set.add("a");
        set.add("c");

        final Iterator<String> it = set.iterator();
        while(it.hasNext()){
            String s=it.next();
            System.out.println(s);//结果为abcde
        }
    }
}

                                        此时显示的结果就是abcde  顺序没有按照存储顺序,也没有重复元素

                        2LinkedHashSet:在哈希表结构中又加入了一条链表,用来记录元素的存储顺序

十进制的整数,由系统随机给出(sout中对象的@xxxxxxxx就是哈

                                        希值的十六进制表达方式),是一个逻辑地址,而不是实际存储的物理地

int xxx.hashCode;可以获取对象的哈希

public native int hashCode();native表示该方法

                                        是本地操作系统的方法。(该方法也可以重写)

                                        (String类的哈希值重写了hashCode的方法)

                        4哈希表解构:数组+红黑树解构。在一个十六位的数组结构中,相同哈希值的

                                                元素(超过八位)会通过链表或红黑树连接在一起。

java接口 list传参 java中list接口的特点_链表_03

 5在hashSet中添加自定义类:如果自定义类新建对象属性有重复时(例:同名同年龄),由于是

                                                新建对象,地址值不同,哈希值也不同,此时的hashSet是无法甄别

                                                相同元素的,需要重写hashCode和Equals方法

java接口 list传参 java中list接口的特点_链表_04