Java集合常用方法

文章介绍了Java中List、Map的复制、转换、操作(如BeanUtil.copyProperties,copyToList,putIfAbsent等)、键值判断、大小写处理以及对象转Map的方法,展示了在编程中处理数据结构的实用技巧。
  • 复制属性,排除某些字段
package org.springframework.beans;
// 拷贝属性,排除主键 id
BeanUtils.copyProperties(projectDir, newProjectDir, "id");
  • 复制list到另一个list
  • 同一个类
IPage<Project> page = page(Condition.getPage(query), lambdaQueryWrapper);
List<ProjectVO> voList = BeanUtil.copyProperties(page.getRecords(), ProjectVO.class);
  • 不同类
list<UserVO> newlist= BeanUtil.copyToList(list,UserVO.class)//这样就好了
  • 如果map的键值为空,则赋值 (只会在键不存在时,才将键值对添加到 Map 中)
map.putIfAbsent("defaultValue", "");
  • 改变map的key值,重新put移除掉旧的即可
    // 将 dataLengthStr 键改为 length
            if (column.containsKey("dataLengthStr")) {
                Object dataLengthStr = column.get("dataLengthStr");
                column.put("length", dataLengthStr);
                column.remove("dataLengthStr");
            }

  • list删除数据
children.removeIf(e->StringUtils.isNotBlank(e.getDataId()));
  • map检查键是否存在
boolean exists = map.containsKey("apple"); // 返回值为true
  • map忽略大小写
  //创建一个新的map,忽略大小写
Map<String, Object> paramMap
Map<String, Object> datasMap = new CaseInsensitiveMap(paramMap);
  • list判断是否有这个值
dataSourceKeyList.contains(key)
  • map遍历

        map.forEach((key,value)->{
            System.out.println(key);
            System.out.println(value);
        });


        for(Map.Entry<Integer,String> entry:map.entrySet()){
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        };

  • 对象转成map
Map<String, Object> dataMap = MapUtil.toMap(vo);
  • 判断list和map是否包含这个值
    在这里插入图片描述
### 集合接口常用方法概述 Java 中的集合框架主要由 `Collection` 和 `Map` 两大接口构成,每个接口下又包含多个子接口和实现类。集合接口提供了丰富的操作方法,用于对数据进行增删改查、遍历、判断等操作。 #### 1. Collection 接口常用方法 `Collection` 是所有单列集合的顶层接口,其常用方法包括: - `add(E e)`:向集合中添加一个元素。 - `addAll(Collection<? extends E> c)`:将指定集合中的所有元素添加到当前集合中。 - `remove(Object o)`:从集合中移除一个指定元素。 - `removeAll(Collection<?> c)`:移除集合中与指定集合共有的所有元素。 - `contains(Object o)`:判断集合中是否包含指定元素。 - `containsAll(Collection<?> c)`:判断集合中是否包含指定集合的所有元素。 - `size()`:返回集合中元素的个数。 - `isEmpty()`:判断集合是否为空。 - `clear()`:清空集合中的所有元素。 - `iterator()`:返回一个迭代器,用于遍历集合中的元素。 - `toArray()`:将集合转换为数组。 示例代码: ```java import java.util.ArrayList; import java.util.Collection; public class CollectionExample { public static void main(String[] args) { Collection<String> collection = new ArrayList<>(); collection.add("Java"); collection.add("Python"); System.out.println(collection); // 输出 [Java, Python] collection.remove("Python"); System.out.println(collection); // 输出 [Java] } } ``` #### 2. List 接口常用方法 `List` 是 `Collection` 的子接口,允许元素重复且有序。其常用方法包括: - `get(int index)`:获取指定索引位置的元素。 - `set(int index, E element)`:替换指定索引位置的元素。 - `add(int index, E element)`:在指定索引位置插入元素。 - `remove(int index)`:移除指定索引位置的元素。 - `indexOf(Object o)`:返回指定元素首次出现的索引位置。 - `lastIndexOf(Object o)`:返回指定元素最后一次出现的索引位置。 示例代码: ```java import java.util.ArrayList; import java.util.List; public class ListExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add(1, "C"); System.out.println(list); // 输出 [A, C, B] System.out.println(list.get(1)); // 输出 C } } ``` #### 3. Set 接口常用方法 `Set` 是 `Collection` 的子接口,不允许重复元素,常用实现类包括 `HashSet`、`LinkedHashSet` 和 `TreeSet`。其常用方法与 `Collection` 基本一致,但不支持索引操作。 示例代码: ```java import java.util.HashSet; import java.util.Set; public class SetExample { public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("X"); set.add("Y"); set.add("X"); // 重复元素不会被添加 System.out.println(set); // 输出 [X, Y] } } ``` #### 4. Map 接口常用方法 `Map` 是双列集合的顶层接口,用于存储键值对。其常用方法包括: - `put(K key, V value)`:添加或更新一个键值对。 - `get(Object key)`:根据键获取对应的值。 - `remove(Object key)`:根据键移除对应的键值对。 - `containsKey(Object key)`:判断是否包含指定的键。 - `containsValue(Object value)`:判断是否包含指定的值。 - `keySet()`:返回所有键的集合。 - `values()`:返回所有值的集合。 - `entrySet()`:返回所有键值对的集合。 示例代码: ```java import java.util.HashMap; import java.util.Map; public class MapExample { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Math", 90); map.put("English", 85); System.out.println(map.get("Math")); // 输出 90 System.out.println(map.containsKey("English")); // 输出 true } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java中的战斗机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值