Java 如何增加数组大小并在数组顶部添加每个新元素?
您知道如何使用新元素动态增加数组的大小,并且在Java中每个新元素都位于数组的顶部吗 我有一个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
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
是O(n)get(int-index)
is O(1)add(E元素)
是O(n)add(int索引,E元素)
是O(n)--remove(int-index)
是O(1)remove(0)
Iterator.remove()是O(1) 您知道如何使用新的 元素和每个新元素在Java中都位于数组的顶部 也许你不需要数组。试着看看清单 数组是静态结构,当您声明您是固定的维度时。如果每次都需要在顶部添加新元素。你应该使用列表 否则,您还可以使用其他策略,比如声明一个比您需要的数组大的数组,并用标准填充它,以避免每次重新分配它
我应该使用LinkedList还是ArrayList。这取决于您需要什么: 对于LinkedList
是O(n)get(int-index)
is O(1)add(E元素)
是O(n)add(int索引,E元素)
是O(n)--remove(int-index)
是O(1)remove(0)
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
您知道如何使用新的 元素和每个新元素在Java中都位于数组的顶部 您可以使用Stack stackDemo=new Stack(); stackDemo.push(“第一”); stackDemo.push(“第二”); stackDemo.push(“第三”); System.out.println(stackDemo.pop());//他将返回第三名
,它的所有实现都会根据需要动态增加大小。如果您希望每个新元素都位于顶部,并且在删除时,您也总是从顶部弹出,我建议您通过 将每个元素放在顶部并从顶部移除每个元素是列表
堆栈的契约。例如:
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());//他将返回第三名
负责动态增加数组大小。你不必担心。@ GutaMavaSaviaYes,但是如果他每次需要添加元素,最好使用Link表……如果你想在上面添加元素(所以新元素是第一个元素),也许你应该考虑使用堆栈。将用于堆栈实现。有什么不对,这似乎应该可以工作?ArrayList
负责动态增加数组大小。你不必担心。@ GutaMavaSaviaYes,但是如果他每次需要添加元素,最好使用Link表……如果你想在上面添加元素(所以新元素是第一个元素),也许你应该考虑使用堆栈。将用于堆栈实现。有什么问题吗?ArrayList是使用数组实现的列表,因此也是静态的。你应该使用LinkedList@granmirupa那是胡说八道。ArrayList确实使用数组,但大小可以更改。您不应该使用LinkedList,除非有特定的原因,否则大小可以更改。。但是你认为改变尺寸需要O(1)???ArrayList使用策略在添加新元素时摊销成本。但它永远不会与LinkedList有什么不同。如果你必须做大量的插入,我会提示LinkedList。首先,你的论点是ArrayList不会改变大小。我从来没有说过任何关于表演的事,你也没有。添加到ArrayList可能非常快,而且比添加到LinkedList快得多,特别是因为支持数组的大小不必是列表的大小。也许插入到第一个元素会更快,但如果不测试它,我不会相信。我们没有足够的信息来知道这两种方法。任务是否涉及随机访问?等等。虽然只添加到顶部听起来像是一个堆栈,但这取决于…ArrayList是一个用数组实现的列表,所以它也是静态的。你应该使用LinkedList@granmirupa那是胡说八道。ArrayList确实使用数组,但大小ArrayList