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

如何从java中的特定元素开始迭代linkedhashset?,java,Java,我有一个包含这些名称的linkedhashset [Raj、Anusha、Suresh、Sashant、Tisha、Prajyoti、Shubhavi、Daniel] 我想迭代这个linkedhashset,从Sashant到Daniel String item1; for (String key : list1) { item1 = key; System.out.println(item1); } 上面的代码打印linkedhashset中的所有名称。如何打印特定名称(从Suresh到D

我有一个包含这些名称的linkedhashset
[Raj、Anusha、Suresh、Sashant、Tisha、Prajyoti、Shubhavi、Daniel]
我想迭代这个linkedhashset,从Sashant到Daniel

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

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

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

建议(按优先顺序):

  • 如果可以,请使用不同的数据结构
  • 您可以按当前的状态遍历列表,但只有在遇到要查找的第一个姓名时才开始打印姓名
  • 2的外观示例如下:

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

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

    建议(按优先顺序):

  • 如果可以,请使用不同的数据结构
  • 您可以按当前的状态遍历列表,但只有在遇到要查找的第一个姓名时才开始打印姓名
  • 2的外观示例如下:

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

    如果您的目标是按插入哈希集的时间顺序迭代元素,则可以尝试由哈希集和列表组成的数据结构。
    无论何时将字符串添加到hashset中,都会将其作为最后一个元素添加到列表中。这需要固定的时间。
    无论何时从hashset中删除字符串,都会将其从列表中删除。这需要线性时间。

    每当您想从特定元素进行迭代时,都可以使用indexOf(字符串s)来查找索引并从该索引开始迭代。

    如果您的目标是按照元素插入哈希集中的时间顺序进行迭代,您可以尝试由哈希集和列表组成的数据结构。
    无论何时将字符串添加到hashset中,都会将其作为最后一个元素添加到列表中。这需要固定的时间。
    无论何时从hashset中删除字符串,都会将其从列表中删除。这需要线性时间。

    每当您想从特定元素进行迭代时,都可以使用indexOf(字符串s)查找索引并从该索引开始迭代。

    如何实现您建议的第二个首选项?使用相同的数据结构如何实现您建议的第二个首选项?使用相同的数据结构