Java 正在将ArrayList的最后3个元素复制到列表中<;字符串>;
我目前试图将每个迭代路径的最后3个元素复制到Java 正在将ArrayList的最后3个元素复制到列表中<;字符串>;,java,arrays,list,arraylist,copy,Java,Arrays,List,Arraylist,Copy,我目前试图将每个迭代路径的最后3个元素复制到lastEdgePath中,但没有任何效果。此外,lastEdgePath必须是List类型。ArrayList的列表allpath起作用,对于这个问题,假设它已填充。这就是我所尝试的,目前正在发生的是,最后3个元素作为1添加到lastEdgePath,而我需要将它们作为3个不同的元素添加。示例:如果路径为[1,2,3,4,5,6]lastEdgePath将变为[4,5,6] public static List<ArrayList<Str
lastEdgePath
中,但没有任何效果。此外,lastEdgePath
必须是List
类型。ArrayList的列表allpath
起作用,对于这个问题,假设它已填充。这就是我所尝试的,目前正在发生的是,最后3个元素作为1添加到lastEdgePath
,而我需要将它们作为3个不同的元素添加。示例:如果路径为[1,2,3,4,5,6]lastEdgePath
将变为[4,5,6]
public static List<ArrayList<String>> allPaths = new ArrayList<>();
for(ArrayList<String> path : allPaths){
List<String> lastEdgePath = Collections.singletonList(path.get(path.size() - 3) + path.get(path.size() - 2) + path.get(path.size() - 1));
}
publicstaticlist allpath=newarraylist();
for(ArrayList路径:AllPath){
List lastEdgePath=Collections.singletonList(path.get(path.size()-3)+path.get(path.size()-2)+path.get(path.size()-1));
}
使用子列表
:
List<String> lastThreeThings = path.subList(path.size() - 3, path.size());
另外,请注意,这不会处理少于3个元素的列表。如果有可能,请使用
Math.max(0,path.size()-3)
作为开始索引。使用子列表
:
List<String> lastThreeThings = path.subList(path.size() - 3, path.size());
另外,请注意,这不会处理少于3个元素的列表。如果有可能,请使用
Math.max(0,path.size()-3)
作为开始索引。只需使用subList方法即可
public static List<ArrayList<String>> allPaths = new ArrayList<>();
for(ArrayList<String> path : allPaths){
List<String> lastEdgePath = path.subList(path.size() - 3, path.size());
}
publicstaticlist allpath=newarraylist();
for(ArrayList路径:AllPath){
List lastEdgePath=path.subList(path.size()-3,path.size());
}
需要注意的一件非常重要的事情是,这将生成指定范围的视图,这意味着子列表中的任何更改都将反映在原始列表中,反之亦然。只需使用子列表方法即可
public static List<ArrayList<String>> allPaths = new ArrayList<>();
for(ArrayList<String> path : allPaths){
List<String> lastEdgePath = path.subList(path.size() - 3, path.size());
}
publicstaticlist allpath=newarraylist();
for(ArrayList路径:AllPath){
List lastEdgePath=path.subList(path.size()-3,path.size());
}
需要注意的一件非常重要的事情是,这将生成指定范围的视图,这意味着子列表中的任何更改都将反映在原始列表中,反之亦然