Java 可以维护插入顺序、过滤掉重复元素并轻松删除第一个元素的数据结构?
我需要使用一个数据结构,它可以维护插入顺序,不存储任何重复项,并且可以轻松有效地从中删除第一个元素Java 可以维护插入顺序、过滤掉重复元素并轻松删除第一个元素的数据结构?,java,list,data-structures,set,Java,List,Data Structures,Set,我需要使用一个数据结构,它可以维护插入顺序,不存储任何重复项,并且可以轻松有效地从中删除第一个元素 public static LinkedHashSet<String> getData(TypeEnum flowType) { LinkedHashSet<String> listOfPaths = new LinkedHashSet<String>(); String prefix = flowType.equals(TypeEnum.PAR
public static LinkedHashSet<String> getData(TypeEnum flowType) {
LinkedHashSet<String> listOfPaths = new LinkedHashSet<String>();
String prefix = flowType.equals(TypeEnum.PARTIAL) ? TypeEnum.PARTIAL.value() : TypeEnum.UNPARTIAL.value();
listOfPaths.add(prefix + LOCAL_PATH); // first element in the list is always LOCAL PATH
for (String path : REMOTE_PATH) {
listOfPaths.add(prefix + path);
}
return listOfPaths;
}
可以使用迭代器获取第一个元素,并将其删除
String localpath=null;
迭代器itr=ListofPath.Iterator();
if(itr.hasNext()){
localpath=itr.next()
移除(本地路径);
}
是的,您只需执行set.remove(set.iterator.next())代码>。我的意思是,通过删除集合中的第一个元素来获取它。就像我对LinkedList解决方案所做的那样String local_path=data.removeFirst()
在这种情况下,只需将字符串存储在变量(例如s
)的itr.next()中,然后执行listOfPaths.remove
。请在实际调用itr.hasNext()之前添加对itr.hasNext()
的检查
LinkedList<String> data = getData(flowType);
String local_path = data.removeFirst(); // this is my local path
// use local_path here
// now iterate all the remote path
for(String remotePath : data) {
// do something with remotePath
}