Libraryless. Click here for Pure Java version (59L/1K).
final sclass SimpleStack<A> extends RandomAccessAbstractList<A> { new ArrayList<A> l; int peak; public A get(int i) { ret l.get(i); } public int size() { ret l.size(); } public A set(int i, A a) { ret l.set(i, a); } public void add(int i, A a) { l.add(i, a); checkSize(); } public A remove(int i) { A a = l.remove(i); checkSize(); ret a; } void checkSize { int n = size(); if (n > peak) peak = n; // record new peak size (~actual capacity) if (n*2 < peak) { // shrink physically when below half of peak ifdef SimpleStack_debug print("Shrinking SimpleStack: " + peak + " => " + n); endifdef trimToSize(l); peak = n; } } }
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1029154 | 
| Snippet name: | SimpleStack - shrinks array when shrunk logically. Note: only made for adding and removing from the end, other operations may be slow | 
| Eternal ID of this version: | #1029154/4 | 
| Text MD5: | 8720ecaec9d09aab7724a0a1cf536334 | 
| Transpilation MD5: | a1709c2825b789261ce944dfb4ea37bc | 
| Author: | stefan | 
| Category: | javax | 
| Type: | JavaX fragment (include) | 
| Public (visible to everyone): | Yes | 
| Archived (hidden from active list): | No | 
| Created/modified: | 2020-07-26 03:11:04 | 
| Source code size: | 715 bytes / 23 lines | 
| Pitched / IR pitched: | No / No | 
| Views / Downloads: | 450 / 796 | 
| Version history: | 3 change(s) | 
| Referenced in: | [show references] |