6.17(集合框架-->ArrayList)

感觉CSDN博客很“饱和”了,我想发的大佬们可能十年前就发过一摸一样的了,害,得找一个不那么“饱和"的平台
在这里插入图片描述

集合的脑图:
在这里插入图片描述

ArrayList和HashSet的区别

1.ArrayList:有顺序
HashSet:无顺序

2.List中的数据可以重复
Set中的数据不能够重复

ArrayList 和LinkedList的区别

1.ArrayList 插入,删除数据慢
LinkedList, 插入,删除数据快

2.ArrayList是顺序结构,所以定位很快,指哪找哪。 就像电影院位置一样,有了电影票,一下就找到位置了。
LinkedList 是链表结构,就像手里的一串佛珠,要找出第99个佛珠,必须得一个一个的数过去,所以定位慢

HashMap和Hashtable的区别

1.HashMap可以存放 null
Hashtable不能存放null

2.HashMap不是线程安全的类
Hashtable是线程安全的类

HashSet LinkedHashSet TreeSet

HashSet: 无序
LinkedHashSet: 按照插入顺序
TreeSet: 从小到大排序

用聚合操作,可以非常容易地遍历,筛选,比较集合中的元素,要用la’m’bda表达式

package lambda;
  
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
 
import charactor.Hero;
  
public class TestAggregate {
  
    public static void main(String[] args) {
        Random r = new Random();
        List<Hero> heros = new ArrayList<Hero>();
        for (int i = 0; i < 10; i++) {
            heros.add(new Hero("hero " + i, r.nextInt(1000), r.nextInt(100)));
        }
 
        System.out.println("初始化集合后的数据 (最后一个数据重复):");
        System.out.println(heros);
         
        //传统方式
        Collections.sort(heros,new Comparator<Hero>() {
            @Override
            public int compare(Hero o1, Hero o2) {
                return (int) (o2.hp-o1.hp);
            }
        });
         
        Hero hero = heros.get(2);
        System.out.println("通过传统方式找出来的hp第三高的英雄名称是:" + hero.name);
         
        //聚合方式
        String name =heros
            .stream()
            .sorted((h1,h2)->h1.hp>h2.hp?-1:1)
            .skip(2)
            .map(h->h.getName())
            .findFirst()
            .get();
 
        System.out.println("通过聚合操作找出来的hp第三高的英雄名称是:" + name);
         
    }
}

思考:HashCode的底层原理?
思考(面试题):Comparator和Comparable的区别?
在这里插入图片描述

posted on 2021-06-17 23:18  Arya32f  阅读(19)  评论(0编辑  收藏  举报

导航