[英]Assign an element that is removed from HashSet to a variable
我想删除HashSet的第一个元素,并将此删除的元素分配给另一个变量。 由于其remove函数返回布尔值,因此我无法执行此操作。 我如何获得其去除的价值? 谢谢。 我的代码是
HashSet<Node> List = new HashSet<Node>();
expandList.add(s);
while(expandList.size() > 0)
{
Node toAssigned = List.remove(s);
// other works related with toAssigned are here
}
用弗拉基米尔·伊万诺夫的话来说 :
您可以添加所需的
getIndex()
方法来扩展LinkedHash
。只需使用迭代器和计数器遍历集合,检查对象是否相等。 如果找到,请返回计数器。
或者您可以尝试Kiryl Ivanou的解决方案 :
创建Set之后,只需将其转换为List并从List中按索引获取:
Set<String> stringsSet = new HashSet<>(); stringsSet.add("string1"); stringsSet.add("string2"); List<String> stringsList = new ArrayList<>(stringsSet); stringsList.get(0); // "string1"; stringsList.get(1); // "string2";
HashSet中没有第一个元素的概念,因为未指定序列顺序。 也许,队列数据结构会更适合您的需求。
http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html
如果您需要从集合中删除一个元素,而不必担心要删除哪个元素,则可以使用以下方法:
set.iterator().next()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.