Java集合总结

集合总结

/*
集合知识点总结
(1)Collection&List
(2)Set
(3)Map
/
/

* Collection -> 单列集合的顶级接口.
* 常用方法:add(E e) -> 添加元素到集合的末尾.
* remove(Object o) -> 删除指定元素,如果删除成功返回true,如果失败返回false.
* isEmpty() -> 判断集合是否为空.
* size() -> 获取集合的长度(获取集合中元素的个数)
* clear() -> 清空集合.
*
* Collection没有索引的概念,所以我们使用迭代器来遍历Collection.
/
Collection c = new ArrayList<>();
c.add(“程序员”);
c.add(“程序猿”);
c.add(“java程序员”);
/

1.获取迭代器.
2.通过迭代器hasNext()和next()方法搭配使用.
/
Iterator iterator = c.iterator();
while (iterator.hasNext()) {
String s = iterator.next();
}
/

增强For(底层也是迭代器)
*/
for (String s : c) {

    }
    //ArrayList:特点(1)有序,元素的存入顺序和取出顺序一致 (2)元素可重复 (3)有索引的概念.
    ArrayList<String> list = new ArrayList<>();
    list.add("程序员");
    list.add("程序猿");
    list.add("java程序员");
    /*
    普通For循环
     */
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i));
    }
    /**
     * 增:add(int index,E e) -> 将e添加到指定的索引.
     *    add(E e) -> 添加元素到末尾.
     * 删:remove(int index) -> 删除指定索引的元素,删除成功返回被删除的元素,失败则出现异常.
     *    remove(Object o)
     * 改:set(int index,E e) -> 使用e替换指定索引的元素,如果替换成功则返回被替代的元素,如果失败,就出异常.
     * 查:get(int index) -> 获取指定索引的元素.
     * 只要和索引有关,就要注意索引越界的问题.
     */
    //ArrayList底层是数组,内存连续,所以说查询快/增删慢.LinkedList底层是链表,内存不连续,所以增删快/查询慢.
    //栈数据结构:先进后出,队列数据结构:先进先出.

    /**
     * Set特点:元素唯一.
     * HashSet特点:元素唯一/元素无序.
     *        add(E e) -> 将元素添加到末尾.
     *        ....同Collection接口中的方法.
     * LinkedHashSet特点:元素唯一/元素有序(存入和取出顺序)
     * TreeSet特点:元素唯一/元素有序(元素按照某种规则进行排序)
     * 排序的两种方式:(1)自然排序 -> 要求TreeSet中元素所在的类要实现Comparable接口,实现compareTo方法.
     * (2)比较器排序Comparator,在构造TreeSet的时候,将比较器接口的实现类对象作为参数传入,匿名内部类的方式..
     */
    TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>() {
        @Override
        public int compare(Student o1, Student o2) {
            int result = o1.getAge() - o2.getAge();
            return result;
        }
    });

    /*
    Map:双列集合的顶级接口.
    能够知道Map集合的特点 -> 一个键+一个值 -> 键唯一,如果重复了,后面的数据会覆盖之前的数据,键可以为NULL,但只有能一个,值可以为NULL,可以有多个.
    能够知道Map集合的基本方法 -> clear() 清空集合中的元素 isEmpty() 判断集合是否为空 size() 返回集合中键值对的个数.
    remove(Object key) -> 删除指定的key和它对应的value,如果成功则返回key对应的值.
    remove(Object key,Object value) -> 删除指定的键与值,返回true表示删除成功,返回false,表示删除失败.
    put(K k,V v) -> 将一个键和一个值存储到Map中.
    containsKey(Object key) -> 判断Map中是否包含指定的键,如果包含返回true,如果不包含返回false.
    containsValue(Object value) -> 判断Map中是否包含指定的值,如果包含返回true,如果不包含返回false.
    能够知道Map集合的获取方法
    get(Object key) -> 获取参数在Map中对应的value,如果有则返回value值,如果没有返回null.
    keySet() -> 返回Map中所有键的集合(Set)
    values() -> 返回Map中所有的值的集合(Collection)
    entrySet() -> 返回Map中所有的键值对对象的集合(Set)<Map.Entry<K,V>>
    能够使用两种方式完成HashMap集合的遍历
    1.横向遍历
    2.纵向遍历
     */
    HashMap<String, String> map = new HashMap<>();

    map.put("永琪", "小燕子");
    map.put("尔康", "紫薇");
    map.put("乾隆", "皇后");
    map.put("小邓子", "小卓子");

    /*
    纵向遍历 ->
    1.获取所有键的集合(keySet)
    2.遍历返回的集合,获取每一个key
    3.通过获取到的每一个key,作为get方法的参数,找到key对应的value.
     */
    Set<String> keySet = map.keySet();
    for (String key : keySet) {
        String value = map.get(key);
    }

    /*
    横向遍历 ->
    1.获取所有的键值对对象的集合(entrySet)
    2.遍历返回的集合,获取每一个键值对对象 Entry.
    3.通过键值对对象的getKey和getValue方法获取其封装的键与值.
     */
    Set<Map.Entry<String, String>> entrySet = map.entrySet();
    for (Map.Entry<String, String> entry : entrySet) {
        String key = entry.getKey();
        String value = entry.getValue();
    }

    /*
     * Collections -> 对于单列集合的工具类.
     * sort(List<?> list,Comparator c) -> 根据指定的规则对List进行排序.
     * reverse(List<?> list) -> 将List中的元素进行翻转.
     * shuffle(List<?> list) -> 打乱List中的元素顺序.
     */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值