JavaSE_16_集合框架(二)

《集合框架(二)》

目录

  • Map集合(熟练)
  • 栈与队列(掌握)
  • 集合工具类(了解)

一、Map集合

主要特点

键值对(key-value)存储,键唯一(规则同Set)。

请添加图片描述

主要实现类

  1. HashMap:普通常用;
  2. TreeMap:键可制定排序(类似TreeSet);
  3. ConcurrentHashMap:线程安全且效率较高。

Map测试

package com.hpr.test;

import com.hpr.entity.User;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Test {
    public static void main(String[] args) {
        Map<Integer, User> map = new HashMap<>();

        map.put(1001, new User(1001, "Alice", 18));
        map.put(1002, new User(1002, "BOb", 20));
        map.put(1003, new User(1003, "Clover", 22));
        map.put(1001, new User(1001, "Divid", 21));         //键重复元素

        //输出map大小
        System.out.println(map.size());

        //移除元素
        map.remove(1004);

        //遍历-1:键遍历
        System.out.println("--------------------键遍历--------------------");
        for (Integer k : map.keySet()) {
            System.out.println(k + "——" + map.get(k));
        }

        //遍历-2:for_each遍历
        System.out.println("--------------------for_each遍历--------------------");
        for (Map.Entry<Integer, User> m : map.entrySet()) {
            System.out.println(m.getKey() + "——" + m.getValue());
        }

        //遍历-3:lambada表达式
        System.out.println("--------------------lambada表达式--------------------");
        map.forEach((k, v) -> System.out.println(k + "——" + v));

        //遍历-4:迭代器遍历
        System.out.println("--------------------迭代器遍历--------------------");
        Iterator<Map.Entry<Integer, User>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, User> m = it.next();
            System.out.println(m.getKey() + "——" + m.getValue());
        }

    }
}

执行结果

注意:出现重复元素,Set中保留前者,Map中保留后者。

请添加图片描述

二、栈与队列

  • 栈:先进后出,后进先出(入口即出口,类似弹夹);
  • 队列:先进先出,后进后出(类似单向管道)。

请添加图片描述

Stack

Stack<String> stack = new Stack<>();

//添加元素
stack.push("a");
stack.push("b");
stack.push("c");
stack.push("d");

//查看栈顶元素
System.out.println(stack.peek());

//查看并弹出栈顶元素
System.out.println("------------------查看并弹出栈顶元素------------------");
int size = stack.size();
for (int i = 0; i < size; i++) {
    System.out.println(stack.pop());
}

执行结果

请添加图片描述

Queen

Queue<String> queue = new ConcurrentLinkedDeque<>();
//添加元素
queue.offer("a");
queue.offer("b");
queue.offer("c");
queue.offer("d");

//查看队列中第一个元素
System.out.println(queue.peek());

//查看并弹出元素
System.out.println("------------------查看并弹出元素------------------");
int size = queue.size();
for (int i = 0; i < size; i++) {
    System.out.println(queue.poll());
}

执行结果

请添加图片描述

三、集合工具类

Collections 是Collection接口的辅助工具类,常用方法如下。

void sort(List<T> list)									//排序

void reverse(List<?> list)								//转置

void copy(List<? super T> dest, List<? extends T> src)	//复制

T max(Collection<? extends T> coll)						//找最大

T min(Collection<? extends T> coll)						//找最小

int indexOfSubList(List<?> source, List<?> target)		//查询指定集合在原集合中首次出现位置

int lastIndexOfSubList(List<?> source, List<?> target)	//查询指定集合在原集合中末次出现位置

...

总结

重点

  1. Map集合的特点及使用;
  2. 栈与队列的概念及使用。

难点

  1. Map集合结构及遍历方式。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值