本文主要是介绍java-list去除重复的对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/**
* @param file
* @return
* 得到该文件夹下所有文件夹名称数组
*/
public static String[] getDirName(File file)
{
List<String> strList = new ArrayList<String>();
if(file.isDirectory())
{
File[] arrFile =file.listFiles();
if(arrFile.length>0 && null!=arrFile)
{
for (File subFile : arrFile) {
if(subFile.isDirectory())
{
strList.add(subFile.getName());
}else
{
strList.add(subFile.getParentFile().getName());
}
}
}
}else
{
//当一个文件为一类时得到该文件的文件名称
String fileName =file.getName();
int index =fileName.lastIndexOf(".");
fileName=fileName.substring(0, index);
strList.add(fileName);
}
//去重方法一
/*List<String> list = new ArrayList<String>();
for (String str : strList) {
if(! list.contains(str))
{
list.add(str);
}
}*/
//去重方法二
/*List<String> list = new ArrayList<String>();
Iterator<String> it = strList.iterator();
while(it.hasNext())
{
String strVal=it.next();
if(list.contains(strVal))
{
it.remove();
}else
{
list.add(strVal);
}
}*/
//去重方法三
/* for(int i=0;i<strList.size()-1;i++)
{
for(int j=strList.size()-1;j>i;j--)
{
if(strList.get(i).equals(strList.get(j)))
{
strList.remove(j);
}
}
}*/
//去重方法四
/* Set<Article> artSet = new HashSet<Article>();
artSet.addAll(new ArrayList(strList));
return artSet.toArray(new String[]{});*/
//去重方法五
/*HashSet<String> set = new HashSet<String>(strList);
strList.clear();
strList.addAll(set);*/
//去重方法六 -------保持原来的顺序
Set<String> set = new HashSet<String>();
List<String> list = new ArrayList<String>();
for (Iterator<String> it = strList.iterator();it.hasNext();)
{
String strVal =it.next();
if(set.add(strVal))
{
list.add(strVal);
}
}
strList.clear();
strList.addAll(list);
return strList.toArray(new String[]{});
}
这篇关于java-list去除重复的对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!