java - 我们可以在LinkedHashSet中的固定点插入元素吗?

标签 java algorithm data-structures collections

我们可以在LinkedHashSet中的固定点插入元素吗?我知道我们无法在 HashSet 中的固定点插入元素,因为 HashSet 不维护插入顺序。但即使 LinkedHashSet 维护插入顺序,我也无法弄清楚为什么以下代码会抛出错误:

import java.util.*;  
class Main{  
public static void main(String args[]){  
LinkedHashSet<String> set=new LinkedHashSet<String>();  
       set.add("Two");    
       set.add("Three");   
       set.add("Four");  
       set.set(1,"Five");  
       Iterator<String> i=set.iterator();  
       while(i.hasNext())  
       {  
       System.out.println(i.next());  
       }  
 }  
 }  

错误:

Main.java:10: error: cannot find symbol
       set.set(1,"Five");  
          ^
symbol:   method set(int,String)
location: variable set of type LinkedHashSet<String>
1 error

最佳答案

您不能在 LinkedHashSet 上使用 .set 方法。我认为在这种情况下你需要一个 ArrayList,如下所示:

List<String> list = new ArrayList<>();  
       list.add("Two");    
       list.add("Three");   
       list.add("Four");  
       list.set(1, "Five");  
       Iterator<String> i = list.iterator();  
       while(i.hasNext())  
       {  
       System.out.println(i.next());  
       }  
 }

请注意:

  • ArrayList从 0 开始
  • 方法 .set 替换先前位于该位置的元素,而 .add 则在此处添加新元素

关于java - 我们可以在LinkedHashSet中的固定点插入元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61656187/

相关文章:

algorithm - 构建一棵没有重复值的k叉树

algorithm - erlang中的分布式算法模拟

algorithm - 如果 p 是素数,如何使用快速算法检查 ap + b 是否是素数?

c# - 遍历树时查找节点

c++ - 链表语法 : is "next" already defined?

java - 具有 get(int index) 和避免重复能力的 O(1) 性能的数据结构

java - wait总是需要notify才能工作吗?

java - JFreeChart:尽管已加载库,但没有此类方法错误

java - mergeSort ArrayIndexOutOfBoundsExecption

java - 检测方法执行链中的任何方法是否使用特定注释进行注释