From f8f9166be2c5d02edc17b3fb1d4ea6baa9f926da Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Thu, 7 Jun 2018 13:04:43 -0300 Subject: Update --- .../java/bjc/utils/funcdata/FunctionalList.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'base/src/main/java/bjc/utils/funcdata/FunctionalList.java') diff --git a/base/src/main/java/bjc/utils/funcdata/FunctionalList.java b/base/src/main/java/bjc/utils/funcdata/FunctionalList.java index c730424..6953bd0 100644 --- a/base/src/main/java/bjc/utils/funcdata/FunctionalList.java +++ b/base/src/main/java/bjc/utils/funcdata/FunctionalList.java @@ -168,6 +168,33 @@ public class FunctionalList implements Cloneable, IList { return wrapped.get(0); } + @Override + public E last() { + if(wrapped.size() < 1) throw new NoSuchElementException("Attempted to get last element of empty list"); + + return wrapped.get(wrapped.size() - 1); + } + + @Override + public E popFirst() { + if(wrapped.size() < 1) throw new NoSuchElementException("Attempted to pop first element of empty list"); + + E head = first(); + wrapped.remove(0); + + return head; + } + + @Override + public E popLast() { + if(wrapped.size() < 1) throw new NoSuchElementException("Attempted to pop last element of empty list"); + + E tail = last(); + wrapped.remove(wrapped.size() - 1); + + return tail; + } + @Override public IList flatMap(final Function> expander) { if(expander == null) throw new NullPointerException("Expander must not be null"); -- cgit v1.2.3