您是否知道如何使用新元素动态增加数组的大小,并且每个新元素都位于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
答案 0 :(得分:1)
你知道如何使用new动态增加数组的大小 元素和每个新元素都在Java的数组顶部?
也许你不需要阵列。试着看一下清单。
Array是静态结构,当你声明你固定的是维度。如果您需要每次都在顶部添加新元素。你应该使用列表。
否则你可以使用其他策略,例如声明一个比你需要的更大的数组,并用批评来填充它,以避免每次都重新分析它。
我应该使用LinkedList还是ArrayList。这取决于你的需求:
LinkedList<E>
get(int index)
是O(n)add(E element)
是O(1)add(int index, E element)
是O(n)remove(int index)
是O(n)--- remove(0)
是O(1)Iterator.remove()
是O(1)&lt; --- LinkedList的主要好处ListIterator.add(E element)
是O(1)&lt; ---主要的好处
链表 ArrayList<E>
get(int index)
是O(1)&lt; --- ArrayList的主要好处add(E element)
是O(1)摊销,但是自阵列以来O(n)最坏情况
必须调整大小并复制add(int index, E element)
是O(n - 指数)摊销,但O(n)
最坏情况(如上所述)remove(int index)
是O(n - 索引)(即删除last是O(1))Iterator.remove()
是O(n - 索引)ListIterator.add(E element)
是O(n - 索引)仔细选择你的结构!
答案 1 :(得分:1)
你知道如何使用new动态增加数组的大小 元素和每个新元素都在Java的数组顶部?
您可以使用List
,所有这些实现都会根据需要动态增加大小。如果您希望每个新元素都在顶部并且在删除时,您也总是从顶部弹出,我建议您通过Stack
Stack
的合同是将每个元素放在最顶层并从顶部删除每个元素。 Forexample:
Stack<String> stackDemo = new Stack<>();
stackDemo.push("First");
stackDemo.push("Second");
stackDemo.push("Third");
System.out.println(stackDemo.pop()); // will return Third