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.2-sources.jar - Apache Commons Collections
commons-collections4-4.2-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.2-sources.jar Target JDK version: 1.7 Dependency: None File size: 708,599 bytes Release date: 08-Jul-2018 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. * * @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.2-sources.jar File size: 708599 bytes Release date: 2018-07-08 Download
⇒ Download and Install commons-collections4-4.1-bin.zip
⇐ What Is commons-collections4-4.2.jar
2023-03-28, 27696👍, 0💬
Popular Posts:
What Is log4j-1.2.13.jar? I got the JAR file from logging-log4j-1.2.13.zip .log4j-1.2.13.jar is the ...
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was develo...
JDK 11 jdk.localedata.jmod is the JMOD file for JDK 11 Localedata module. JDK 11 Locale Data module ...
Apache ZooKeeper is an open-source server which enables highly reliable distributed coordination. Ap...
Apache Neethi provides general framework for the programmers to use WS Policy. It is compliant with ...