Java中如何正确使用set方法修改List<List<String>>类型的集合元素?
解决List<List>集合的set方法参数类型问题
嘿,这个问题其实很好理解——你的selection是一个嵌套列表(List<List<String>>类型),它的每一个元素本身都是一个List<String>,而不是单个String。所以set方法要求你传入的第二个参数必须是List<String>类型,直接传字符串自然会报错。
根据你的需求,分两种场景给你解决方案:
场景1:替换整个内部列表
如果你想把索引10位置上的整个内部列表替换成只包含"modifiedentry"的新列表,可以用你初始化时用到的Guava工具类,或者Java原生的集合类来创建新的List<String>:
// 用Guava的Lists创建新列表(和你初始化方式一致) selection.set(10, Lists.newArrayList("modifiedentry")); // 或者用Java原生写法 selection.set(10, new ArrayList<>(List.of("modifiedentry")));
场景2:修改内部列表中的单个元素
如果你其实是想修改索引10位置的内部列表里的某个元素(而不是替换整个列表),那得先获取到这个内部列表,再对它调用set方法:
// 先获取索引10对应的内部列表 List<String> innerList = selection.get(10); // 修改该内部列表中指定位置的元素,比如索引0的位置 innerList.set(0, "modifiedentry");
⚠️ 注意:不管哪种方式,都要确保selection集合中索引10的位置已经存在元素(也就是集合的大小至少为11,因为索引从0开始),否则会抛出IndexOutOfBoundsException异常。
内容的提问来源于stack exchange,提问作者Famic Tech
相关产品推荐
相关产品推荐

