package service;
import com.bestpay.dubbo.result.Result;
import org.apache.commons.collections.CollectionUtils;
import org.apache.poi.ss.formula.functions.T;
import com.google.common.collect.Maps;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future;
public class ListTest {
/**
* 集合的常用方法
*/
public void test1() {
List<String> list1 = new ArrayList<>();
list1.add("你好");//添加一条元素
list1.indexOf("你好");//获取集合元素的索引
List<String> list2 = new ArrayList<>();
list2.add("世界");
list2.add("女神");
list1.addAll(list2);//往集合1里面添加集合2的所有元素
list1.isEmpty();//如果集合不是new的对象,是声明的空null,就会抛空指针异常
CollectionUtils.isEmpty(list1);//使用此方法判断集合是否为空,不会抛空指针,安全
list1.contains("你好");//判断集合是否包含某元素
list1.containsAll(list2);//判断集合是否包含某集合的所有元素
list1.get(0);//根据索引获取元素值
list1.set(0, "hello");//给集合某索引处赋值,类似于替换,而不是依次顺移后一位
list1.lastIndexOf("世界");//获取集合元素的索引
list1.subList(0,3);//从第一个索引开始,到第二个索引数减一位置,生成一个新的list集合,注意越界
list1.toArray();//集合变数组
list1.remove("女神");//根据集合元素值删除元素
list1.remove(1);//根据集合元素索引删除值,注意越界
list1.removeAll(list2);//删除另一个集合的所有元素
list1.clear();//清空集合
list2.forEach(System.out::println);//集合元素打印
}
/**
* 两个集合之间去重复
* 数组去重,也可使用,先将数组转集合再去重
*/
public void duplicateTest() {
List<String> resourceIdList = new ArrayList<>();
resourceIdList.add("21");
resourceIdList.add("22");
ArrayList<String> paramValueList = new ArrayList<>();
paramValueList.add("21");
paramValueList.add("22");
paramValueList.add("13");
paramValueList.add("31");
//转换LinkedHashSet,去重且有序,保证转换后优先级顺序不变
LinkedHashSet<String> hashSet1 = new LinkedHashSet<>(paramValueList);
LinkedHashSet<String> hashSet2 = new LinkedHashSet<>(resourceIdList);
hashSet1.removeAll(hashSet2);
//最终去重后,需要执行的资源id
List<String> finalResourceIdList = new ArrayList<>(hashSet1);
finalResourceIdList.forEach(System.out::println);
}
/**
* 线程安全的集合
*/
public void test2() {
Map<String, Object> requestMap = new HashMap<>();
//线程安全的集合
List<Future<Result<T>>> futureList = new CopyOnWriteArrayList<>();
//由于多线程下hashMap问题 重新new Map 传值 (用于多线程)
HashMap<String, Object> currentMap = Maps.newHashMap();
currentMap.putAll(requestMap);
}
public static void main(String[] args) {
ListTest listTest = new ListTest();
// listTest.test1();
listTest.duplicateTest();
}
}
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现