集合的存与取2

时间:2020-04-27
本文章向大家介绍集合的存与取2,主要包括集合的存与取2使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、泛型:

 定义格式:修饰符 class 类名<代表泛型的变量> { }  注意:代表泛型的变量是引用数据类型 不是基本数据类型;

  例:List<Integer> list = new ArrayList<Integer>();

含有泛型的接口:

 定义格式:修饰符 interface接口名<代表泛型的变量> { } 

使用泛型的好处:将运行时期的ClassCastException,转移到了编译时期变成了编译失败。避免了类型强转的麻烦。

 集合中添加元素时候 在编译期间会报错;

二、当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用

三、List集合存储数据  

数据存储的常用结构有:堆栈、队列、数组、链表。

特点

堆栈:先进后出(类似于弹夹);

队列:先进先出(排队 过安检);

数组:查找快 增删慢(有下标 数组长度不可变);

链表:增删快 查找慢(无下标);

四、LinkedList集合(链表)

 五、Vector集合(数组)

 六、set接口:它里面的集合,所存储的元素就是不重复的。

原因如下:当调用set集合中add方法时候,先去调用存入的值的这个数据类型中的hashcode方法计算哈希值,然后拿着哈希值去集合中找是否有这个哈希值,如果没有,将元素存入,如果有,再调用这个数据类型中的equals方法比较内容,如果内容相同,将元素存入,如果内容相同,丢掉不存;

七、HashSet中存储JavaAPI中提供的类型元素时,不需要重写元素的hashCode和equals方法,因为这两个方法,在JavaAPI的每个类中已经重写完毕,如String类、Integer类等。存储自定义类元素时候需进行重写;

八、存入元素有序输出 使用:LinkedHashSet

Set<String> set = new LinkedHashSet<String>();

public class LinkedHashSetDemo {
    public static void main(String[] args) {
        Set<String> set = new LinkedHashSet<String>();
        set.add("bbb");
        set.add("aaa");
        set.add("abc");
        set.add("bbc");
Iterator it = set.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
输出结果如下,LinkedHashSet集合保证元素的存入和取出的顺序:
bbb
aaa
abc
bbc

原文地址:https://www.cnblogs.com/lxc127136/p/12785572.html