Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
commons-collections4-4.4-sources.jar - Apache Commons Collections
commons-collections4-4.4-sources.jar is the source JAR file for Apache Commons Collections 4.2, which provides additional collection handling functionalities on top of JDK library.
JAR File Size and Download Location:
JAR name: commons-collections4-4.4-sources.jar Target JDK version: 8 Dependency: None File size: 715,541 bytes Release date: 05-Jul-2019 Download: Apache Commons Collections
✍: FYIcenter.com
⏎ org/apache/commons/collections4/multimap/AbstractListValuedMap.java
/* * 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.commons.collections4.multimap; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.ListIterator; import java.util.Map; import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListValuedMap; /** * Abstract implementation of the {@link ListValuedMap} interface to simplify * the creation of subclass implementations. * <p> * Subclasses specify a Map implementation to use as the internal storage and * the List implementation to use as values. * </p> * * @param <K> the type of the keys in this map * @param <V> the type of the values in this map * @since 4.1 */ public abstract class AbstractListValuedMap<K, V> extends AbstractMultiValuedMap<K, V> implements ListValuedMap<K, V> { /** * Constructor needed for subclass serialisation. */ protected AbstractListValuedMap() { super(); } /** * A constructor that wraps, not copies * * @param map the map to wrap, must not be null * @throws NullPointerException if the map is null */ protected AbstractListValuedMap(final Map<K, ? extends List<V>> map) { super(map); } // ----------------------------------------------------------------------- @Override @SuppressWarnings("unchecked") protected Map<K, List<V>> getMap() { return (Map<K, List<V>>) super.getMap(); } /** * Creates a new value collection using the provided factory. * @return a new list */ @Override protected abstract List<V> createCollection(); // ----------------------------------------------------------------------- /** * Gets the list of values associated with the specified key. This would * return an empty list in case the mapping is not present * * @param key the key to retrieve * @return the {@code List} of values, will return an empty {@link List} for no mapping */ @Override public List<V> get(final K key) { return wrappedCollection(key); } @Override List<V> wrappedCollection(final K key) { return new WrappedList(key); } /** * Removes all values associated with the specified key. * <p> * A subsequent <code>get(Object)</code> would return an empty list. * * @param key the key to remove values from * @return the <code>List</code> of values removed, will return an empty, * unmodifiable list for no mapping found. */ @Override public List<V> remove(final Object key) { return ListUtils.emptyIfNull(getMap().remove(key)); } // ----------------------------------------------------------------------- /** * Wrapped list to handle add and remove on the list returned by get(object) */ private class WrappedList extends WrappedCollection implements List<V> { public WrappedList(final K key) { super(key); } @Override protected List<V> getMapping() { return getMap().get(key); } @Override public void add(final int index, final V value) { List<V> list = getMapping(); if (list == null) { list = createCollection(); getMap().put(key, list); } list.add(index, value); } @Override public boolean addAll(final int index, final Collection<? extends V> c) { List<V> list = getMapping(); if (list == null) { list = createCollection(); final boolean changed = list.addAll(index, c); if (changed) { getMap().put(key, list); } return changed; } return list.addAll(index, c); } @Override public V get(final int index) { final List<V> list = ListUtils.emptyIfNull(getMapping()); return list.get(index); } @Override public int indexOf(final Object o) { final List<V> list = ListUtils.emptyIfNull(getMapping()); return list.indexOf(o); } @Override public int lastIndexOf(final Object o) { final List<V> list = ListUtils.emptyIfNull(getMapping()); return list.lastIndexOf(o); } @Override public ListIterator<V> listIterator() { return new ValuesListIterator(key); } @Override public ListIterator<V> listIterator(final int index) { return new ValuesListIterator(key, index); } @Override public V remove(final int index) { final List<V> list = ListUtils.emptyIfNull(getMapping()); final V value = list.remove(index); if (list.isEmpty()) { AbstractListValuedMap.this.remove(key); } return value; } @Override public V set(final int index, final V value) { final List<V> list = ListUtils.emptyIfNull(getMapping()); return list.set(index, value); } @Override public List<V> subList(final int fromIndex, final int toIndex) { final List<V> list = ListUtils.emptyIfNull(getMapping()); return list.subList(fromIndex, toIndex); } @Override public boolean equals(final Object other) { final List<V> list = getMapping(); if (list == null) { return Collections.emptyList().equals(other); } if (!(other instanceof List)) { return false; } final List<?> otherList = (List<?>) other; return ListUtils.isEqualList(list, otherList); } @Override public int hashCode() { final List<V> list = getMapping(); return ListUtils.hashCodeForList(list); } } /** Values ListIterator */ private class ValuesListIterator implements ListIterator<V> { private final K key; private List<V> values; private ListIterator<V> iterator; public ValuesListIterator(final K key) { this.key = key; this.values = ListUtils.emptyIfNull(getMap().get(key)); this.iterator = values.listIterator(); } public ValuesListIterator(final K key, final int index) { this.key = key; this.values = ListUtils.emptyIfNull(getMap().get(key)); this.iterator = values.listIterator(index); } @Override public void add(final V value) { if (getMap().get(key) == null) { final List<V> list = createCollection(); getMap().put(key, list); this.values = list; this.iterator = list.listIterator(); } this.iterator.add(value); } @Override public boolean hasNext() { return iterator.hasNext(); } @Override public boolean hasPrevious() { return iterator.hasPrevious(); } @Override public V next() { return iterator.next(); } @Override public int nextIndex() { return iterator.nextIndex(); } @Override public V previous() { return iterator.previous(); } @Override public int previousIndex() { return iterator.previousIndex(); } @Override public void remove() { iterator.remove(); if (values.isEmpty()) { getMap().remove(key); } } @Override public void set(final V value) { iterator.set(value); } } }
⏎ org/apache/commons/collections4/multimap/AbstractListValuedMap.java
Or download all of them as a single archive file:
File name: commons-collections4-4.4-sources.jar File size: 715541 bytes Release date: 2019-07-05 Download
⇒ Download and Install commons-collections4-4.2-bin.zip
⇐ What Is commons-collections4-4.4.jar
2020-12-15, 101632👍, 0💬
Popular Posts:
Java Cryptography Extension 1.2.2 JAR File Size and Download Location: File name: jce.jar, jce-1.2.2...
XStream is a simple library to serialize objects to XML and back again. JAR File Size and Download L...
io.jar is a component in iText Java library to provide input/output functionalities. iText Java libr...
Apache BCEL Source Code Files are inside the Apache BCEL source package file like bcel-6.5.0-src.zip...
JDK 6 tools.jar is the JAR file for JDK 6 tools. It contains Java classes to support different JDK t...