我正在实施股票市场计划的关联清单.
它有和操作 - 买
对于购买代码是
//Stocks is a linked List like so
//LinkedList<Integer> stocks = new LinkedList<Integer>();
public void buy(int q, int p) {
stocks.addLast(q); //add number of stocks
stocks.addLast(p); //for i stocks i +1 = price of stock
}
Run Code Online (Sandbox Code Playgroud)
此操作addLast用于链接列表,显然将给定元素添加到当前列表末尾的新位置.
因此,例如,如果我有一个列表,让我们说下面的数据
//Stock, price, stock, price etc...
[100, 50, 5000, 30, 8000, 60]
Run Code Online (Sandbox Code Playgroud)
如果我addLast是最后一个元素的链接列表搜索然后添加,因此时间复杂度将是O(n)(仅就Big Oh而言).或者它是否索引到列表的末尾,意识到列表的末尾是说stocks[5]然后插入引用列表末尾的新数据的新节点?
所以我的问题是,addLast()操作链表时间复杂度为O(n)还是O(1)?
发布以下任何说明
我正在寻找java中的一种本机方式(最好)来实现一个数据结构来保存一个int作为键和一组键/值对作为值。本质上,if 是一个由索引引用的字典数组。
前任:
MyDataStructure[[Key,Value]] foo = new ...
foo.put[["hello", "world"], ["so","rocks"]]
Run Code Online (Sandbox Code Playgroud)
println(foo[0].getValue("hello"))会打印出来"world"会println(foo[0].getValue("so"))打印出来"rocks"