Add remove method to NamedList

git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@687489 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Erik Hatcher 2008-08-20 22:14:09 +00:00
parent 5eb8861bb4
commit ff30eb21e3
2 changed files with 42 additions and 0 deletions

View File

@ -117,6 +117,16 @@ public class NamedList<T> implements Cloneable, Serializable, Iterable<Map.Entry
return old;
}
/**
* Removes the name/value pair at the specified index.
* @return the value at the index removed
*/
public T remove(int idx) {
int index = (idx<<1);
nvPairs.remove(index);
return (T)nvPairs.remove(index); // same index, as things shifted in previous remove
}
/**
* Scans the list sequentially beginning at the specified index and
* returns the index of the first pair with the specified name.

View File

@ -0,0 +1,32 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.common.util;
import junit.framework.TestCase;
public class NamedListTest extends TestCase {
public void testRemove() {
NamedList<String> nl = new NamedList<String>();
nl.add("key1", "value1");
nl.add("key2", "value2");
assertEquals(2, nl.size());
String value = nl.remove(0);
assertEquals("value1", value);
assertEquals(1, nl.size());
}
}