侧边栏壁纸
  • 累计撰写 793 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

可存重复键的HashMap

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 171 阅读 / 199 字
温馨提示:
本文最后更新于 2022-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
键重复了就存成list,把重复键的值放在list里.

package com.ts.utils;


import java.util.*;
import java.util.function.BiConsumer;

public class SortMap<K, V> {
    public TreeMap<K, Object> sortContain = new TreeMap<K, Object>();

    public void put(K key, V value) {
        if (sortContain.containsKey(key)) {
            Object nowValue = sortContain.get(key);
            if (nowValue instanceof ArrayList) {
                ((ArrayList) nowValue).add(value);
            } else if (nowValue instanceof String) {
                ArrayList<V> temp = new ArrayList<>();
                temp.add((V) nowValue);
                temp.add(value);
                sortContain.put(key, temp);
            }
        } else {
            sortContain.put(key, value);
        }
    }
//在jsp里用 action里的东西会变
    public void forEach(BiConsumer<K, V> action) {
        Objects.requireNonNull(action);
        sortContain.forEach((key, value) -> {
            if (value instanceof ArrayList) {
                ((ArrayList) value).forEach((value1) -> {
                    action.accept(key, (V) value1);
                });
            } else if (value instanceof String)
                action.accept(key, (V) value);
        });
    }

    public Map.Entry<K, Object> firstEntry() {
        return sortContain.firstEntry();
    }

    public Map.Entry<K, Object> higherEntry(K key) {
        return sortContain.higherEntry(key);
    }

    public void clear() {
        sortContain.clear();
    }
}
0

评论区