Java 从列表中删除冗余文件夹路径

Java 从列表中删除冗余文件夹路径,java,c#,Java,C#,下面的列表包含一系列文件夹路径。其中一些是多余的,因此我需要删除它们,最终列表应仅包含底层文件夹: 初步名单: var paths = new List<string> { "Pavements/", "Pavements/2019_05/", "Pavements/2019_06/", "Pavements/2019_06/A/", "Roads/", "Roads/2019_06/" }; i、 e.已删除所有上层文件夹路径 有人

下面的列表包含一系列文件夹路径。其中一些是多余的,因此我需要删除它们,最终列表应仅包含底层文件夹:

初步名单:

var paths = new List<string>
{
    "Pavements/",
    "Pavements/2019_05/",
    "Pavements/2019_06/",
    "Pavements/2019_06/A/",
    "Roads/",
    "Roads/2019_06/"
};
i、 e.已删除所有上层文件夹路径

有人知道我怎样才能做到这一点吗?我有一种感觉,我需要一个递归方法,但我不确定如何去做。我用的是C语言,但用java或类似的语言回答就可以了。
谢谢。

一种方法是使用linq查询,该查询将每个项目与所有其他项目进行比较,并且仅当其他项目均以该项目开头时才返回该项目:

paths = paths.Where(path => !paths.Any(p => p != path && p.StartsWith(path))).ToList();

实现这一点的一种方法是使用linq查询,该查询将每个项与所有其他项进行比较,并且仅当其他项都不是以该项开头时才返回该项:

paths = paths.Where(path => !paths.Any(p => p != path && p.StartsWith(path))).ToList();