set集合与map集合以及list的优化

  1. Set

    1.1 特点:无序、对象不能重复(eqauls)
    eqauls从Object继承,默认比较的内存地址
    1.2 遍历
    1.2.1 foreach
    1.2.2 迭代器
    1.3 常用实现类
    HashSet
    TreeSet:根据某种(规则)对里面的元素进行排序
    规则1: java.lang.Comparable
    规则2: java.util.Comparator

  2. Map
    4.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复,如果键相同,值会覆盖
    它没有继承Collection接口
    4.2 遍历
    3.2.1 先取出保存所有键的Set,再遍历Set即可
    3.2.2 先取出保存所有Entry重点内容的Set,再遍历此Set即可(快速遍历Map)

set代码块

public class Set {

    public static void main(String[] args) {

        java.util.Set<Stu> set= new HashSet<>();

        set.add(new Stu("15", "zah", 17));
        set.add(new Stu("18", "hfgs", 145));
        set.add(new Stu("78", "khkh", 19));
        set.add(new Stu("123", "khjde", 141));
        set.add(new Stu("65", "ljkh", 147));
        set.add(new Stu("32", "aads", 20));
        set.add(new Stu("32", "aads", 20));

        System.out.println(set.size());
/**
     * set不是所有的类型都是无序的Sting和integer是有序的,但是自己定义的实体类是无序的
     * 
     * 关于set集合的排序分两点:
     * 1.jdk1.7及以下HashSet是无序的,而linkedHashSet是怎么存怎么取,TreeSet有默认的排序(自然排序接口,比较器排序接口)。
     * 2.jdk1.8及以上HashSet和TreeSet都是有序的。HashSet的排序方式是散列排序,TreeSet它的排序是(自然排序接口,比较器排序接口)
     * 
     */

list集合的优化

public class Collection2 {


    //list的优化
    public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {
        ArrayList list=new ArrayList<>(50);

        getLen(list);
        for (int i = 0; i < 60; i++) {
            list.add(i);
            System.out.print(list.size()+",");
            getLen(list);

        }
        String [] arr=new String[10];

    }


      //结论:初始容量为10    每次增加数组的长度为1.5倍。
    //优化只需要给list一个指定的长度就行了这样可以减少扩容的时间。

猜你喜欢

转载自blog.csdn.net/csdnlcw/article/details/82667196
今日推荐