From 0493b105043f40772c3cc54508e80839a894fcaf Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 9 Nov 2011 16:02:31 +0100 Subject: [PATCH] FList.without --- .../com/intellij/util/containers/FList.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/platform/util/src/com/intellij/util/containers/FList.java b/platform/util/src/com/intellij/util/containers/FList.java index 44252d9acd9b..2c5b60197044 100644 --- a/platform/util/src/com/intellij/util/containers/FList.java +++ b/platform/util/src/com/intellij/util/containers/FList.java @@ -59,6 +59,26 @@ public class FList extends AbstractList { return new FList(elem, this); } + public FList without(E elem) { + FList front = emptyList(); + + FList current = this; + while (!current.isEmpty()) { + if (current.myHead.equals(elem)) { + FList result = current.myTail; + while (!front.isEmpty()) { + result = result.prepend(front.myHead); + front = front.myTail; + } + return result; + } + + front = front.prepend(current.myHead); + current = current.myTail; + } + return this; + } + public FList getTail() { return myTail; }