java常用API

xxx方法范例

方法说明
方法定义

方法使用举例

Map接口

默认方法computeIfAbsent

方法说明
如果key对应的Value存在则直接返回,否则返回我们新传入的值。
方法定义

default V computeIfAbsent(K key,
        Function<? super K, ? extends V> mappingFunction) {
    Objects.requireNonNull(mappingFunction);
    V v;
    if ((v = get(key)) == null) {
        V newValue;
        if ((newValue = mappingFunction.apply(key)) != null) {
            put(key, newValue);
            return newValue;
        }
    }
    return v;
}

方法使用举例

Map<String, List<Integer>> map = new HashMap<>();
map.put("old",new ArrayList<>());
//返回旧
List<Integer> oldList = map.computeIfAbsent("old", k -> new ArrayList<>());
//返回新
List<Integer> newList = map.computeIfAbsent("new", k -> new ArrayList<>());

Collection接口

方法说明
删除集合中满足条件的元素
方法定义

default boolean removeIf(Predicate<? super E> filter) {
    Objects.requireNonNull(filter);
    boolean removed = false;
    final Iterator<E> each = iterator();
    while (each.hasNext()) {
        if (filter.test(each.next())) {
            each.remove();
            removed = true;
        }
    }
    return removed;
}

方法使用举例

Stack

E push(E item)
E pop()
E peek()

Queue

boolean add(E e);
boolean offer(E e);
E remove();
E poll();
E element();//如果此队列为空,则会引发异常。
E peek();

Deque

void addFirst(E e);
void addLast(E e);
E removeFirst();
E removeLast();
boolean offerFirst(E e);
boolean offerLast(E e);
E pollFirst();
E pollLast();
E getFirst();//deque为空会抛出异常。
E getLast();
E peekFirst();//deque为空会返回null
E peekLast();

Comparator

自然排序的比较器

@SuppressWarnings("unchecked")
public static <T extends Comparable<? super T>> Comparator<T> naturalOrder() {
    return (Comparator<T>) Comparators.NaturalOrderComparator.INSTANCE;
}

反转比较器

public static <T extends Comparable<? super T>> Comparator<T> reverseOrder() {
    return Collections.reverseOrder();
}

先转再比较

public static <T, U extends Comparable<? super U>> Comparator<T> comparing(
        Function<? super T, ? extends U> keyExtractor)
{
    Objects.requireNonNull(keyExtractor);
    return (Comparator<T> & Serializable)
        (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));
}

public static <T, U> Comparator<T> comparing(
        Function<? super T, ? extends U> keyExtractor,
        Comparator<? super U> keyComparator)
{
    Objects.requireNonNull(keyExtractor);
    Objects.requireNonNull(keyComparator);
    return (Comparator<T> & Serializable)
        (c1, c2) -> keyComparator.compare(keyExtractor.apply(c1),
                                          keyExtractor.apply(c2));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值