Java集合类的使用

Java集合类的使用Java集合类Collection,它是一个接口,他有两个子接口List和Map,Collection主要方法booleanadd(Ee);booleanaddAll(Collection<?extendsE>c);booleanremove(Objecto);booleanremoveAll(Collection<?>c);voidclear();intsize();booleanisEmpty();booleancon

大家好,又见面了,我是你们的朋友全栈君。

Java集合类Collection,它是一个接口,他有两个子接口List和Map,Collection主要方法

boolean add(E e);

boolean addAll(Collection<? extends E> c);

boolean remove(Object o);

boolean removeAll(Collection<?> c);

void clear();

int size();

boolean isEmpty();

boolean contains(Object o);

boolean containsAll(Collection<?> c);

Object[] toArray();

boolean equals(Object o);

Iterator<E> iterator();

List在Collection基础上新增的主要方法

boolean retainAll(Collection<?> c); // 取list和c的交集

void replaceAll(UnaryOperator<E> operator); // 如:list.replaceAll(t -> t + 1);

void sort(Comparator<? super E> c); // 参考Arrays.sort

E get(int index); // 获取元素的值

E set(int index, E element); // 设置元素的值

int indexOf(Object o); // 找o的位置

int lastIndexOf(Object o); // 最后一个匹配o的位置

List<E> subList(int fromIndex, int toIndex); // 子集

// ListIterator继承自Iterator
ListIterator<E> listIterator();

Map在Collection基础上新增的主要方法

boolean containsKey(Object key); // 是否包含key

boolean containsValue(Object value); // 是否包含value

V get(Object key); // 获取元素

V put(K key, V value); // 增加元素

void putAll(Map<? extends K, ? extends V> m); // 增加m中所有的元素

Set<K> keySet(); // 获取所有的key

Collection<V> values(); // 获取所有的values

Set<Map.Entry<K, V>> entrySet(); // 

V getOrDefault(Object key, V defaultValue); // 获取key对应的值,默认值为defaultValue

map.forEach((key, value) -> {
     value = value - value * 10/100; // value减少百分之 10
});


map.replaceAll((key, value) -> value.toUpperCase()); // 将所有的值更改为大写

V putIfAbsent(K key, V value); // 如果不存在,则增加数据

V replace(K key, V value); // 替换元素

hashmap.compute(K key, BiFunction remappingFunction); //对 hashMap 中指定 key 的值进行重新计算

// compute举例:重新计算鞋子打了10%折扣后的值
int newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100);

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142683.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解java重定向和转发的区别

    详解java重定向和转发的区别重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL,而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。怎么选择是重定向还是转发呢?通常情况

    2022年9月8日
    1
  • Java正则匹配空格_js正则表达式匹配空格

    Java正则匹配空格_js正则表达式匹配空格需求针对tab键带来的多个空格问题,有时候我们针对带空格的一行数据要进行切割,如果有多个空格就会出现就会切割空格出现,我们想把空格都去掉,所以需要用到某些方法。解决方案利用正则表达式来匹配空格\\s+首先利用split(“\\s+”);方法来对字符串切割,尽可能的匹配空格,这里也挺有意思,因为空格数目不一样,可以动态变换匹配的空格数量,这个实现原理可以看看底层原理,挺有意思。测试:

    2022年9月24日
    0
  • 网络地址转换(NAT)的原理与配置

    网络地址转换(NAT)的原理与配置

    2022年3月6日
    37
  • 什么是redis,redis能做什么,redis应用场景

    什么是redis,redis能做什么,redis应用场景

    2021年10月10日
    52
  • 本地用微信测试公众号开发对接微信支付思路

    本地用微信测试公众号开发对接微信支付思路本地开发对接微信时 常常用到微信测试公众号 碰到支付对接时没有微信支付测试号的存在 只能使用微信商户号产生真正的交易 辗转测试多种方案 最终本地成功测试对接 准备清单测试公众号 appid appsecret openid 微信商户号 mch id mch key 绑定了微信商户号的微信公众号 appid appsecret openid 内网穿透的域名思路 1 用手机微信访问内网穿透的域名访问测试 2 测试到微信支付时 替换测试公众号的 appid appsecret open

    2025年7月13日
    0
  • ostringstream用法

    ostringstream用法使用MFC都知道他有一个非常方便的字符串类CString,C++标准也有一个string类,但是处理起来不够灵活,特别是没有类似Format()的函数。 无意中看到ostringstream的用法,使用它可以达到类似的效果。 ostringstreamos;stringstr=”abcef”;inti=1000;osstd::coutos.st

    2022年6月28日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号