繁体   English   中英

将从HashSet中删除的元素分配给变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM