Java 如何增加数组大小并在数组顶部添加每个新元素?

Java 如何增加数组大小并在数组顶部添加每个新元素?,java,arrays,string,for-loop,Java,Arrays,String,For Loop,您知道如何使用新元素动态增加数组的大小,并且在Java中每个新元素都位于数组的顶部吗 我有一个Java代码片段: List<String> dbsuggestions = new ArrayList<String>(); ...some for loop here String correctedText = correctMedicalAcronym(ac, classify, c); if(correctedText != nu

您知道如何使用新元素动态增加数组的大小,并且在Java中每个新元素都位于数组的顶部吗

我有一个Java代码片段:

    List<String> dbsuggestions = new ArrayList<String>();
    ...some for loop here



    String correctedText = correctMedicalAcronym(ac, classify, c);

    if(correctedText != null){
        System.out.println(correctedText);
        dbsuggestions.add(0, correctedText);
    }   

    ...end of the for loop
List dbsuggestions=new ArrayList();
…这里有一些循环
字符串correctedText=correctedMedicalAronym(ac,分类,c);
if(correctedText!=null){
系统输出打印项次(修正文本);
dbsuggestions.add(0,更正文本);
}   
…for循环的结束
您知道如何使用新的 元素和每个新元素在Java中都位于数组的顶部

也许你不需要数组。试着看看清单

数组是静态结构,当您声明您是固定的维度时。如果每次都需要在顶部添加新元素。你应该使用列表

否则,您还可以使用其他策略,比如声明一个比您需要的数组大的数组,并用标准填充它,以避免每次重新分配它


我应该使用LinkedList还是ArrayList。这取决于您需要什么:

对于
LinkedList

  • get(int-index)
    是O(n)
  • add(E元素)
    is O(1)
  • add(int索引,E元素)
    是O(n)
  • remove(int-index)
    是O(n)--
    remove(0)
    是O(1)
  • Iterator.remove()是O(1)
    您知道如何使用新的
    元素和每个新元素在Java中都位于数组的顶部

    也许你不需要数组。试着看看清单

    数组是静态结构,当您声明您是固定的维度时。如果每次都需要在顶部添加新元素。你应该使用列表

    否则,您还可以使用其他策略,比如声明一个比您需要的数组大的数组,并用标准填充它,以避免每次重新分配它


    我应该使用LinkedList还是ArrayList。这取决于您需要什么:

    对于
    LinkedList

    • get(int-index)
      是O(n)
    • add(E元素)
      is O(1)
    • add(int索引,E元素)
      是O(n)
    • remove(int-index)
      是O(n)--
      remove(0)
      是O(1)
    • Iterator.remove()是O(1)
      您知道如何使用新的
      元素和每个新元素在Java中都位于数组的顶部

      您可以使用
      列表
      ,它的所有实现都会根据需要动态增加大小。如果您希望每个新元素都位于顶部,并且在删除时,您也总是从顶部弹出,我建议您通过

      将每个元素放在顶部并从顶部移除每个元素是
      堆栈的契约。例如:

              Stack<String> stackDemo = new Stack<>();
              stackDemo.push("First");
              stackDemo.push("Second");
              stackDemo.push("Third");
              System.out.println(stackDemo.pop()); // will return Third
      
      Stack stackDemo=new Stack();
      stackDemo.push(“第一”);
      stackDemo.push(“第二”);
      stackDemo.push(“第三”);
      System.out.println(stackDemo.pop());//他将返回第三名
      
      您知道如何使用新的 元素和每个新元素在Java中都位于数组的顶部

      您可以使用
      列表
      ,它的所有实现都会根据需要动态增加大小。如果您希望每个新元素都位于顶部,并且在删除时,您也总是从顶部弹出,我建议您通过

      将每个元素放在顶部并从顶部移除每个元素是
      堆栈的契约。例如:

              Stack<String> stackDemo = new Stack<>();
              stackDemo.push("First");
              stackDemo.push("Second");
              stackDemo.push("Third");
              System.out.println(stackDemo.pop()); // will return Third
      
      Stack stackDemo=new Stack();
      stackDemo.push(“第一”);
      stackDemo.push(“第二”);
      stackDemo.push(“第三”);
      System.out.println(stackDemo.pop());//他将返回第三名
      

      ArrayList
      负责动态增加数组大小。你不必担心。@ GutaMavaSaviaYes,但是如果他每次需要添加元素,最好使用Link表……如果你想在上面添加元素(所以新元素是第一个元素),也许你应该考虑使用堆栈。将用于堆栈实现。有什么不对,这似乎应该可以工作?
      ArrayList
      负责动态增加数组大小。你不必担心。@ GutaMavaSaviaYes,但是如果他每次需要添加元素,最好使用Link表……如果你想在上面添加元素(所以新元素是第一个元素),也许你应该考虑使用堆栈。将用于堆栈实现。有什么问题吗?ArrayList是使用数组实现的列表,因此也是静态的。你应该使用LinkedList@granmirupa那是胡说八道。ArrayList确实使用数组,但大小可以更改。您不应该使用LinkedList,除非有特定的原因,否则大小可以更改。。但是你认为改变尺寸需要O(1)???ArrayList使用策略在添加新元素时摊销成本。但它永远不会与LinkedList有什么不同。如果你必须做大量的插入,我会提示LinkedList。首先,你的论点是ArrayList不会改变大小。我从来没有说过任何关于表演的事,你也没有。添加到ArrayList可能非常快,而且比添加到LinkedList快得多,特别是因为支持数组的大小不必是列表的大小。也许插入到第一个元素会更快,但如果不测试它,我不会相信。我们没有足够的信息来知道这两种方法。任务是否涉及随机访问?等等。虽然只添加到顶部听起来像是一个堆栈,但这取决于…ArrayList是一个用数组实现的列表,所以它也是静态的。你应该使用LinkedList@granmirupa那是胡说八道。ArrayList确实使用数组,但大小