如何从Java中的特定元素开始迭代linkedhashset?

时间:2018-09-08 02:52:23

标签: java

我有一个包含这些名称的链接哈希集
[Raj,Anusha,Suresh,Sashant,Tisha,Prajyoti,Shubhavi,Daniel]
我想迭代此链接哈希集,从Sashant到Daniel。

String item1;
for (String key : list1) {
item1 = key;
System.out.println(item1);
} 

上面的代码打印出linkedhashset中的所有名称。如何使用特定名称(从Suresh到Daniel)进行打印?请帮忙。谢谢。

2 个答案:

答案 0 :(得分:3)

对于您要使用的数据结构,这是不可能的。在引擎盖下,使用双向链接列表来遍历该列表,这显然不允许您跳转到索引。

建议(按优先顺序):

  1. 如果可以,请使用其他数据结构
  2. 您可以按照当前的方式遍历列表,但是只有在遇到要查找的名字时才开始打印名称

2可能看起来像一个例子:

String firstNameToPrint = "Some Name";
boolean foundFirstNameToPrint = false;
for (String key : list1) {
    if (key.equals(firstNameToPrint) {
        foundFirstNameToPrint = true;
    }
    if (foundFirstNameToPrint) {
        System.out.println(key);
    }
} 

答案 1 :(得分:0)

如果您的目的是按照将元素插入哈希表的时间顺序进行迭代,则可以尝试由哈希表和List组成的数据结构。
只要将String添加到哈希集中,就将其作为最后一个元素添加到List中。这需要持续的时间。
每当您从哈希集中删除字符串时,也将从列表中删除它。这需要线性时间。
每当您要从特定元素进行迭代时,都可以使用indexOf(String s)查找索引并从该索引开始进行迭代。