summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2019-09-09 23:08:02 +0200
committerGitHub <noreply@github.com>2019-09-09 23:08:02 +0200
commitd13f1fb67f314074f91c10965d94695ad3c7eaf6 (patch)
tree15d4ffa3a93b49cec1a926eaa7daf5a43f56002f /vespajlib
parent3c8addceb5ef2b7fa04041c98b8c172551ab6290 (diff)
parentdc06b30f6a1861b5c25ae0c2d50865d053ebdffa (diff)
Merge pull request #10569 from vespa-engine/balder/more-efficient-trim
Removing elements from an array is very costly.
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/collections/ListenableArrayList.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/collections/ListenableArrayList.java b/vespajlib/src/main/java/com/yahoo/collections/ListenableArrayList.java
index e3f73212170..44569471049 100644
--- a/vespajlib/src/main/java/com/yahoo/collections/ListenableArrayList.java
+++ b/vespajlib/src/main/java/com/yahoo/collections/ListenableArrayList.java
@@ -3,13 +3,13 @@ package com.yahoo.collections;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
/**
* An array list which notifies listeners after one or more items are added
*
* @author bratseth
- * @since 5.1.17
*/
@SuppressWarnings("serial")
public class ListenableArrayList<ITEM> extends ArrayList<ITEM> {
@@ -56,6 +56,11 @@ public class ListenableArrayList<ITEM> extends ArrayList<ITEM> {
return result;
}
+ public List<Runnable> listeners() {
+ if (listeners == null) return Collections.emptyList();
+ return Collections.unmodifiableList(listeners);
+ }
+
/**
* Adds a listener which is invoked whenever elements are added to this.
* This may not be invoked once for each added element.