All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dbflute.lasta.di.util.tiger.LdiCollectionsUtil Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2014-2015 the original author or authors.
 *
 * Licensed 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.dbflute.lasta.di.util.tiger;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.IdentityHashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.Stack;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
import java.util.WeakHashMap;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.PriorityBlockingQueue;

/**
 * Java5のgenericsや可変長を活用する、コレクションのためのユーティリティです。
 * 
 * @author modified by jflute (originated in Seasar)
 */
public abstract class LdiCollectionsUtil {

    /**
     * インスタンスを構築します。
     */
    protected LdiCollectionsUtil() {
    }

    /**
     * {@link ArrayBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ArrayBlockingQueue}の要素型
     * @param capacity
     *            キューの容量
     * @return {@link ArrayBlockingQueue}の新しいインスタンス
     * @see ArrayBlockingQueue#ArrayBlockingQueue(int)
     */
    public static  ArrayBlockingQueue newArrayBlockingQueue(final int capacity) {
        return new ArrayBlockingQueue(capacity);
    }

    /**
     * {@link ArrayBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ArrayBlockingQueue}の要素型
     * @param capacity
     *            キューの容量
     * @param fair
     *            {@code true}の場合、挿入または削除時にブロックされたスレッドに対するキューアクセス
     * @return {@link ArrayBlockingQueue}の新しいインスタンス
     * @see ArrayBlockingQueue#ArrayBlockingQueue(int, boolean)
     */
    public static  ArrayBlockingQueue newArrayBlockingQueue(final int capacity, final boolean fair) {
        return new ArrayBlockingQueue(capacity, fair);
    }

    /**
     * {@link ArrayBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ArrayBlockingQueue}の要素型
     * @param capacity
     *            キューの容量
     * @param fair
     *            {@code true}の場合、挿入または削除時にブロックされたスレッドに対するキューアクセス
     * @param c
     *            最初に含む要素のコレクション
     * @return {@link ArrayBlockingQueue}の新しいインスタンス
     * @see ArrayBlockingQueue#ArrayBlockingQueue(int, boolean, Collection)
     */
    public static  ArrayBlockingQueue newArrayBlockingQueue(final int capacity, final boolean fair, final Collection c) {
        return new ArrayBlockingQueue(capacity, fair, c);
    }

    /**
     * {@link ArrayList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ArrayList}の要素型
     * @return {@link ArrayList}の新しいインスタンス
     * @see ArrayList#ArrayList()
     */
    public static  ArrayList newArrayList() {
        return new ArrayList();
    }

    /**
     * {@link ArrayList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ArrayList}の要素型
     * @param c
     *            要素がリストに配置されるコレクション
     * @return {@link ArrayList}の新しいインスタンス
     * @see ArrayList#ArrayList(Collection)
     */
    public static  ArrayList newArrayList(final Collection c) {
        return new ArrayList(c);
    }

    /**
     * {@link ArrayList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ArrayList}の要素型
     * @param initialCapacity
     *            リストの初期容量
     * @return {@link ArrayList}の新しいインスタンス
     * @see ArrayList#ArrayList(int)
     */
    public static  ArrayList newArrayList(final int initialCapacity) {
        return new ArrayList(initialCapacity);
    }

    /**
     * {@link ConcurrentHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ConcurrentHashMap}のキーの型
     * @param 
     *            {@link ConcurrentHashMap}の値の型
     * @return {@link ConcurrentHashMap}の新しいインスタンス
     * @see ConcurrentHashMap#ConcurrentHashMap()
     */
    public static  ConcurrentHashMap newConcurrentHashMap() {
        return new ConcurrentHashMap();
    }

    /**
     * {@link ConcurrentHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ConcurrentHashMap}のキーの型
     * @param 
     *            {@link ConcurrentHashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @return {@link ConcurrentHashMap}の新しいインスタンス
     * @see ConcurrentHashMap#ConcurrentHashMap(int)
     */
    public static  ConcurrentHashMap newConcurrentHashMap(final int initialCapacity) {
        return new ConcurrentHashMap(initialCapacity);
    }

    /**
     * {@link ConcurrentHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ConcurrentHashMap}のキーの型
     * @param 
     *            {@link ConcurrentHashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @param loadFactor
     *            サイズ変更の制御に使用される負荷係数のしきい値
     * @param concurrencyLevel
     *            同時更新を行うスレッドの推定数
     * @return {@link ConcurrentHashMap}の新しいインスタンス
     * @see ConcurrentHashMap#ConcurrentHashMap(int, float, int)
     */
    public static  ConcurrentHashMap newConcurrentHashMap(final int initialCapacity, final float loadFactor,
            final int concurrencyLevel) {
        return new ConcurrentHashMap(initialCapacity, loadFactor, concurrencyLevel);
    }

    /**
     * {@link ConcurrentHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ConcurrentHashMap}のキーの型
     * @param 
     *            {@link ConcurrentHashMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link ConcurrentHashMap}の新しいインスタンス
     * @see ConcurrentHashMap#ConcurrentHashMap(Map)
     */
    public static  ConcurrentHashMap newConcurrentHashMap(final Map m) {
        return new ConcurrentHashMap(m);
    }

    /**
     * {@link ConcurrentLinkedQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ConcurrentLinkedQueue}の要素型
     * @return {@link ConcurrentLinkedQueue}の新しいインスタンス
     * @see ConcurrentLinkedQueue#ConcurrentLinkedQueue()
     */
    public static  ConcurrentLinkedQueue newConcurrentLinkedQueue() {
        return new ConcurrentLinkedQueue();
    }

    /**
     * {@link ConcurrentLinkedQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link ConcurrentLinkedQueue}の要素型
     * @param c
     *            最初に含む要素のコレクション
     * @return {@link ConcurrentLinkedQueue}の新しいインスタンス
     * @see ConcurrentLinkedQueue#ConcurrentLinkedQueue(Collection)
     */
    public static  ConcurrentLinkedQueue newConcurrentLinkedQueue(final Collection c) {
        return new ConcurrentLinkedQueue(c);
    }

    /**
     * {@link CopyOnWriteArrayList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArrayList}の要素型
     * @return {@link CopyOnWriteArrayList}の新しいインスタンス
     * @see CopyOnWriteArrayList#CopyOnWriteArrayList()
     */
    public static  CopyOnWriteArrayList newCopyOnWriteArrayList() {
        return new CopyOnWriteArrayList();
    }

    /**
     * {@link CopyOnWriteArrayList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArrayList}の要素型
     * @param c
     *            最初に保持していた要素のコレクション
     * @return {@link CopyOnWriteArrayList}の新しいインスタンス
     * @see CopyOnWriteArrayList#CopyOnWriteArrayList(Collection)
     */
    public static  CopyOnWriteArrayList newCopyOnWriteArrayList(final Collection c) {
        return new CopyOnWriteArrayList(c);
    }

    /**
     * {@link CopyOnWriteArrayList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArrayList}の要素型
     * @param toCopyIn
     *            配列 (この配列のコピーは内部配列として使用される)
     * @return {@link CopyOnWriteArrayList}の新しいインスタンス
     * @see CopyOnWriteArrayList#CopyOnWriteArrayList(Object[])
     */
    public static  CopyOnWriteArrayList newCopyOnWriteArrayList(final E[] toCopyIn) {
        return new CopyOnWriteArrayList(toCopyIn);
    }

    /**
     * {@link CopyOnWriteArraySet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArraySet}の要素型
     * @return {@link CopyOnWriteArraySet}の新しいインスタンス
     * @see CopyOnWriteArraySet#CopyOnWriteArraySet()
     */
    public static  CopyOnWriteArraySet newCopyOnWriteArraySet() {
        return new CopyOnWriteArraySet();
    }

    /**
     * {@link CopyOnWriteArraySet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArraySet}の要素型
     * @param c
     *            コレクション
     * @return {@link CopyOnWriteArraySet}の新しいインスタンス
     * @see CopyOnWriteArraySet#CopyOnWriteArraySet(Collection)
     */
    public static  CopyOnWriteArraySet newCopyOnWriteArraySet(final Collection c) {
        return new CopyOnWriteArraySet(c);
    }

    /**
     * {@link DelayQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArraySet}の要素型
     * @return {@link DelayQueue}の新しいインスタンス
     * @see DelayQueue#DelayQueue()
     */
    public static  DelayQueue newDelayQueue() {
        return new DelayQueue();
    }

    /**
     * {@link DelayQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link CopyOnWriteArraySet}の要素型
     * @param c
     *            コレクション
     * @return {@link DelayQueue}の新しいインスタンス
     * @see DelayQueue#DelayQueue(Collection)
     */
    public static  DelayQueue newDelayQueue(final Collection c) {
        return new DelayQueue(c);
    }

    /**
     * {@link HashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashMap}のキーの型
     * @param 
     *            {@link HashMap}の値の型
     * @return {@link HashMap}の新しいインスタンス
     * @see HashMap#HashMap()
     */
    public static  HashMap newHashMap() {
        return new HashMap();
    }

    /**
     * {@link HashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashMap}のキーの型
     * @param 
     *            {@link HashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @return {@link HashMap}の新しいインスタンス
     * @see HashMap#HashMap(int)
     */
    public static  HashMap newHashMap(final int initialCapacity) {
        return new HashMap(initialCapacity);
    }

    /**
     * {@link HashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashMap}のキーの型
     * @param 
     *            {@link HashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @param loadFactor
     *            サイズ変更の制御に使用される負荷係数のしきい値
     * @return {@link HashMap}の新しいインスタンス
     * @see HashMap#HashMap(int, float)
     */
    public static  HashMap newHashMap(final int initialCapacity, final float loadFactor) {
        return new HashMap(initialCapacity, loadFactor);
    }

    /**
     * {@link HashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashMap}のキーの型
     * @param 
     *            {@link HashMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link HashMap}の新しいインスタンス
     * @see HashMap#HashMap(int, float)
     */
    public static  HashMap newHashMap(final Map m) {
        return new HashMap(m);
    }

    /**
     * {@link HashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashSet}の要素型
     * @return {@link HashSet}の新しいインスタンス
     * @see HashSet#HashSet()
     */
    public static  HashSet newHashSet() {
        return new HashSet();
    }

    /**
     * {@link HashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashSet}の要素型
     * @param c
     *            要素がセットに配置されるコレクション
     * @return {@link HashSet}の新しいインスタンス
     * @see HashSet#HashSet()
     */
    public static  HashSet newHashSet(final Collection c) {
        return new HashSet(c);
    }

    /**
     * {@link HashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashSet}の要素型
     * @param initialCapacity
     *            初期容量
     * @return {@link HashSet}の新しいインスタンス
     * @see HashSet#HashSet()
     */
    public static  HashSet newHashSet(final int initialCapacity) {
        return new HashSet(initialCapacity);
    }

    /**
     * {@link HashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link HashSet}の要素型
     * @param initialCapacity
     *            初期容量
     * @param loadFactor
     *            負荷係数
     * @return {@link HashSet}の新しいインスタンス
     * @see HashSet#HashSet()
     */
    public static  HashSet newHashSet(final int initialCapacity, final float loadFactor) {
        return new HashSet(initialCapacity, loadFactor);
    }

    /**
     * {@link Hashtable}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Hashtable}のキーの型
     * @param 
     *            {@link Hashtable}の値の型
     * @return {@link Hashtable}の新しいインスタンス
     * @see Hashtable#Hashtable()
     */
    public static  Hashtable newHashtable() {
        return new Hashtable();
    }

    /**
     * {@link Hashtable}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Hashtable}のキーの型
     * @param 
     *            {@link Hashtable}の値の型
     * @param initialCapacity
     *            ハッシュテーブルの初期容量
     * @return {@link Hashtable}の新しいインスタンス
     * @see Hashtable#Hashtable(int)
     */
    public static  Hashtable newHashtable(final int initialCapacity) {
        return new Hashtable(initialCapacity);
    }

    /**
     * {@link Hashtable}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Hashtable}のキーの型
     * @param 
     *            {@link Hashtable}の値の型
     * @param initialCapacity
     *            ハッシュテーブルの初期容量
     * @param loadFactor
     *            ハッシュテーブルの負荷係数
     * @return {@link Hashtable}の新しいインスタンス
     * @see Hashtable#Hashtable(int, float)
     */
    public static  Hashtable newHashtable(final int initialCapacity, final float loadFactor) {
        return new Hashtable(initialCapacity, loadFactor);
    }

    /**
     * {@link Hashtable}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Hashtable}のキーの型
     * @param 
     *            {@link Hashtable}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link Hashtable}の新しいインスタンス
     * @see Hashtable#Hashtable(Map)
     */
    public static  Hashtable newHashtable(final Map m) {
        return new Hashtable(m);
    }

    /**
     * {@link IdentityHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link IdentityHashMap}のキーの型
     * @param 
     *            {@link IdentityHashMap}の値の型
     * @return {@link IdentityHashMap}の新しいインスタンス
     * @see IdentityHashMap#IdentityHashMap()
     */
    public static  IdentityHashMap newIdentityHashMap() {
        return new IdentityHashMap();
    }

    /**
     * {@link IdentityHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link IdentityHashMap}のキーの型
     * @param 
     *            {@link IdentityHashMap}の値の型
     * @param expectedMaxSize
     *            マップの予想最大サイズ
     * @return {@link IdentityHashMap}の新しいインスタンス
     * @see IdentityHashMap#IdentityHashMap(int)
     */
    public static  IdentityHashMap newIdentityHashMap(final int expectedMaxSize) {
        return new IdentityHashMap(expectedMaxSize);
    }

    /**
     * {@link IdentityHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link IdentityHashMap}のキーの型
     * @param 
     *            {@link IdentityHashMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link IdentityHashMap}の新しいインスタンス
     * @see IdentityHashMap#IdentityHashMap(Map)
     */
    public static  IdentityHashMap newIdentityHashMap(final Map m) {
        return new IdentityHashMap(m);
    }

    /**
     * {@link LinkedBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedBlockingQueue}の要素型
     * @return {@link LinkedBlockingQueue}の新しいインスタンス
     * @see LinkedBlockingQueue#LinkedBlockingQueue()
     */
    public static  LinkedBlockingQueue newLinkedBlockingQueue() {
        return new LinkedBlockingQueue();
    }

    /**
     * {@link LinkedBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedBlockingQueue}の要素型
     * @param c
     *            最初に含む要素のコレクション
     * @return {@link LinkedBlockingQueue}の新しいインスタンス
     * @see LinkedBlockingQueue#LinkedBlockingQueue(Collection)
     */
    public static  LinkedBlockingQueue newLinkedBlockingQueue(final Collection c) {
        return new LinkedBlockingQueue(c);
    }

    /**
     * {@link LinkedBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedBlockingQueue}の要素型
     * @param initialCapacity
     *            このキューの容量
     * @return {@link LinkedBlockingQueue}の新しいインスタンス
     * @see LinkedBlockingQueue#LinkedBlockingQueue(int)
     */
    public static  LinkedBlockingQueue newLinkedBlockingQueue(final int initialCapacity) {
        return new LinkedBlockingQueue(initialCapacity);
    }

    /**
     * {@link LinkedHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashMap}のキーの型
     * @param 
     *            {@link LinkedHashMap}の値の型
     * @return {@link LinkedHashMap}の新しいインスタンス
     * @see LinkedHashMap#LinkedHashMap()
     */
    public static  LinkedHashMap newLinkedHashMap() {
        return new LinkedHashMap();
    }

    /**
     * {@link LinkedHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashMap}のキーの型
     * @param 
     *            {@link LinkedHashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @return {@link LinkedHashMap}の新しいインスタンス
     * @see LinkedHashMap#LinkedHashMap(int)
     */
    public static  LinkedHashMap newLinkedHashMap(final int initialCapacity) {
        return new LinkedHashMap(initialCapacity);
    }

    /**
     * {@link LinkedHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashMap}のキーの型
     * @param 
     *            {@link LinkedHashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @param loadFactor
     *            負荷係数
     * @return {@link LinkedHashMap}の新しいインスタンス
     * @see LinkedHashMap#LinkedHashMap(int, float)
     */
    public static  LinkedHashMap newLinkedHashMap(final int initialCapacity, final float loadFactor) {
        return new LinkedHashMap(initialCapacity, loadFactor);
    }

    /**
     * {@link LinkedHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashMap}のキーの型
     * @param 
     *            {@link LinkedHashMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link LinkedHashMap}の新しいインスタンス
     * @see LinkedHashMap#LinkedHashMap(Map)
     */
    public static  LinkedHashMap newLinkedHashMap(final Map m) {
        return new LinkedHashMap(m);
    }

    /**
     * {@link LinkedHashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashSet}の要素型
     * @return {@link LinkedHashSet}の新しいインスタンス
     * @see LinkedHashSet#LinkedHashSet()
     */
    public static  LinkedHashSet newLinkedHashSet() {
        return new LinkedHashSet();
    }

    /**
     * {@link LinkedHashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashSet}の要素型
     * @param c
     *            要素がセットに配置されるコレクション
     * @return {@link LinkedHashSet}の新しいインスタンス
     * @see LinkedHashSet#LinkedHashSet(Collection)
     */
    public static  LinkedHashSet newLinkedHashSet(final Collection c) {
        return new LinkedHashSet(c);
    }

    /**
     * {@link LinkedHashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashSet}の要素型
     * @param initialCapacity
     *            初期容量
     * @return {@link LinkedHashSet}の新しいインスタンス
     * @see LinkedHashSet#LinkedHashSet(int)
     */
    public static  LinkedHashSet newLinkedHashSet(final int initialCapacity) {
        return new LinkedHashSet(initialCapacity);
    }

    /**
     * {@link LinkedHashSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedHashSet}の要素型
     * @param initialCapacity
     *            初期容量
     * @param loadFactor
     *            負荷係数
     * @return {@link LinkedHashSet}の新しいインスタンス
     * @see LinkedHashSet#LinkedHashSet(int, float)
     */
    public static  LinkedHashSet newLinkedHashSet(final int initialCapacity, final float loadFactor) {
        return new LinkedHashSet(initialCapacity, loadFactor);
    }

    /**
     * {@link LinkedList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedList}の要素型
     * @return {@link LinkedList}の新しいインスタンス
     * @see LinkedList#LinkedList()
     */
    public static  LinkedList newLinkedList() {
        return new LinkedList();
    }

    /**
     * {@link LinkedList}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link LinkedList}の要素型
     * @param c
     *            要素がリストに配置されるコレクション
     * @return {@link LinkedList}の新しいインスタンス
     * @see LinkedList#LinkedList(Collection)
     */
    public static  LinkedList newLinkedList(final Collection c) {
        return new LinkedList(c);
    }

    /**
     * {@link PriorityBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityBlockingQueue}の要素型
     * @return {@link PriorityBlockingQueue}の新しいインスタンス
     * @see PriorityBlockingQueue#PriorityBlockingQueue()
     */
    public static  PriorityBlockingQueue newPriorityBlockingQueue() {
        return new PriorityBlockingQueue();
    }

    /**
     * {@link PriorityBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityBlockingQueue}の要素型
     * @param c
     *            最初に含む要素のコレクション
     * @return {@link PriorityBlockingQueue}の新しいインスタンス
     * @see PriorityBlockingQueue#PriorityBlockingQueue(Collection)
     */
    public static  PriorityBlockingQueue newPriorityBlockingQueue(final Collection c) {
        return new PriorityBlockingQueue(c);
    }

    /**
     * {@link PriorityBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityBlockingQueue}の要素型
     * @param initialCapacity
     *            この優先度キューの初期容量
     * @return {@link PriorityBlockingQueue}の新しいインスタンス
     * @see PriorityBlockingQueue#PriorityBlockingQueue(int)
     */
    public static  PriorityBlockingQueue newPriorityBlockingQueue(final int initialCapacity) {
        return new PriorityBlockingQueue(initialCapacity);
    }

    /**
     * {@link PriorityBlockingQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityBlockingQueue}の要素型
     * @param initialCapacity
     *            この優先度キューの初期容量
     * @param comparator
     *            この優先度キューの順序付けに使用するコンパレータ
     * @return {@link PriorityBlockingQueue}の新しいインスタンス
     * @see PriorityBlockingQueue#PriorityBlockingQueue(int, Comparator)
     */
    public static  PriorityBlockingQueue newPriorityBlockingQueue(final int initialCapacity, final Comparator comparator) {
        return new PriorityBlockingQueue(initialCapacity, comparator);
    }

    /**
     * {@link PriorityQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityQueue}の要素型
     * @return {@link PriorityQueue}の新しいインスタンス
     * @see PriorityQueue#PriorityQueue()
     */
    public static  PriorityQueue newPriorityQueue() {
        return new PriorityQueue();
    }

    /**
     * {@link PriorityQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityQueue}の要素型
     * @param c
     *            要素が優先度キューに配置されるコレクション
     * @return {@link PriorityQueue}の新しいインスタンス
     * @see PriorityQueue#PriorityQueue(Collection)
     */
    public static  PriorityQueue newPriorityQueue(final Collection c) {
        return new PriorityQueue(c);
    }

    /**
     * {@link PriorityQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityQueue}の要素型
     * @param initialCapacity
     *            この優先度キューの初期容量
     * @return {@link PriorityQueue}の新しいインスタンス
     * @see PriorityQueue#PriorityQueue(int)
     */
    public static  PriorityQueue newPriorityQueue(final int initialCapacity) {
        return new PriorityQueue(initialCapacity);
    }

    /**
     * {@link PriorityQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityQueue}の要素型
     * @param initialCapacity
     *            この優先度キューの初期容量
     * @param comparator
     *            この優先度キューの順序付けに使用するコンパレータ
     * @return {@link PriorityQueue}の新しいインスタンス
     * @see PriorityQueue#PriorityQueue(int, Comparator)
     */
    public static  PriorityQueue newPriorityQueue(final int initialCapacity, final Comparator comparator) {
        return new PriorityQueue(initialCapacity, comparator);
    }

    /**
     * {@link PriorityQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityQueue}の要素型
     * @param c
     *            要素が優先度キューに配置されるコレクション
     * @return {@link PriorityQueue}の新しいインスタンス
     * @see PriorityQueue#PriorityQueue(PriorityQueue)
     */
    public static  PriorityQueue newPriorityQueue(final PriorityQueue c) {
        return new PriorityQueue(c);
    }

    /**
     * {@link PriorityQueue}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link PriorityQueue}の要素型
     * @param c
     *            要素が優先度キューに配置されるコレクション
     * @return {@link PriorityQueue}の新しいインスタンス
     * @see PriorityQueue#PriorityQueue(SortedSet)
     */
    public static  PriorityQueue newPriorityQueue(final SortedSet c) {
        return new PriorityQueue(c);
    }

    /**
     * {@link Stack}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Stack}の要素型
     * @return {@link Stack}の新しいインスタンス
     * @see Stack#Stack()
     */
    public static  Stack newStack() {
        return new Stack();
    }

    /**
     * {@link TreeMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeMap}のキーの型
     * @param 
     *            {@link TreeMap}の値の型
     * @return {@link TreeMap}の新しいインスタンス
     * @see TreeMap#TreeMap()
     */
    public static  TreeMap newTreeMap() {
        return new TreeMap();
    }

    /**
     * {@link TreeMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeMap}のキーの型
     * @param 
     *            {@link TreeMap}の値の型
     * @param c
     * @return {@link TreeMap}の新しいインスタンス
     * @see TreeMap#TreeMap()
     */
    public static  TreeMap newTreeMap(final Comparator c) {
        return new TreeMap(c);
    }

    /**
     * {@link TreeMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeMap}のキーの型
     * @param 
     *            {@link TreeMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link TreeMap}の新しいインスタンス
     * @see TreeMap#TreeMap(Map)
     */
    public static  TreeMap newTreeMap(final Map m) {
        return new TreeMap(m);
    }

    /**
     * {@link TreeMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeMap}のキーの型
     * @param 
     *            {@link TreeMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link TreeMap}の新しいインスタンス
     * @see TreeMap#TreeMap(SortedMap)
     */
    public static  TreeMap newTreeMap(final SortedMap m) {
        return new TreeMap(m);
    }

    /**
     * {@link TreeSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeSet}の要素型
     * @return {@link TreeSet}の新しいインスタンス
     * @see TreeSet#TreeSet()
     */
    public static  TreeSet newTreeSet() {
        return new TreeSet();
    }

    /**
     * {@link TreeSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeSet}の要素型
     * @param c
     *            要素がセットに配置されるコレクション
     * @return {@link TreeSet}の新しいインスタンス
     * @see TreeSet#TreeSet(Collection)
     */
    public static  TreeSet newTreeSet(final Collection c) {
        return new TreeSet(c);
    }

    /**
     * {@link TreeSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeSet}の要素型
     * @param c
     *            このセットをソートするために使用されるコンパレータ
     * @return {@link TreeSet}の新しいインスタンス
     * @see TreeSet#TreeSet(Comparator)
     */
    public static  TreeSet newTreeSet(final Comparator c) {
        return new TreeSet(c);
    }

    /**
     * {@link TreeSet}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link TreeSet}の要素型
     * @param s
     *            要素がセットに配置されるコレクション
     * @return {@link TreeSet}の新しいインスタンス
     * @see TreeSet#TreeSet(SortedSet)
     */
    public static  TreeSet newTreeSet(final SortedSet s) {
        return new TreeSet(s);
    }

    /**
     * {@link Vector}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Vector}の要素型
     * @return {@link Vector}の新しいインスタンス
     * @see Vector#Vector()
     */
    public static  Vector newVector() {
        return new Vector();
    }

    /**
     * {@link Vector}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Vector}の要素型
     * @param c
     *            要素がセットに配置されるコレクション
     * @return {@link Vector}の新しいインスタンス
     * @see Vector#Vector(Collection)
     */
    public static  Vector newVector(final Collection c) {
        return new Vector(c);
    }

    /**
     * {@link Vector}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Vector}の要素型
     * @param initialCapacity
     *            {@link Vector}の初期容量
     * @return {@link Vector}の新しいインスタンス
     * @see Vector#Vector(int)
     */
    public static  Vector newVector(final int initialCapacity) {
        return new Vector(initialCapacity);
    }

    /**
     * {@link Vector}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link Vector}の要素型
     * @param initialCapacity
     *            {@link Vector}の初期容量
     * @param capacityIncrement
     *            {@link Vector}があふれたときに増加される容量
     * @return {@link Vector}の新しいインスタンス
     * @see Vector#Vector(int, int)
     */
    public static  Vector newVector(final int initialCapacity, final int capacityIncrement) {
        return new Vector(initialCapacity, capacityIncrement);
    }

    /**
     * {@link WeakHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link WeakHashMap}のキーの型
     * @param 
     *            {@link WeakHashMap}の値の型
     * @return {@link WeakHashMap}の新しいインスタンス
     * @see WeakHashMap#WeakHashMap()
     */
    public static  WeakHashMap newWeakHashMap() {
        return new WeakHashMap();
    }

    /**
     * {@link WeakHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link WeakHashMap}のキーの型
     * @param 
     *            {@link WeakHashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @return {@link WeakHashMap}の新しいインスタンス
     * @see WeakHashMap#WeakHashMap(int)
     */
    public static  WeakHashMap newWeakHashMap(final int initialCapacity) {
        return new WeakHashMap(initialCapacity);
    }

    /**
     * {@link WeakHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link WeakHashMap}のキーの型
     * @param 
     *            {@link WeakHashMap}の値の型
     * @param initialCapacity
     *            初期容量
     * @param loadFactor
     *            サイズ変更の制御に使用される負荷係数のしきい値
     * @return {@link WeakHashMap}の新しいインスタンス
     * @see WeakHashMap#WeakHashMap(int, float)
     */
    public static  WeakHashMap newWeakHashMap(final int initialCapacity, final float loadFactor) {
        return new WeakHashMap(initialCapacity, loadFactor);
    }

    /**
     * {@link WeakHashMap}の新しいインスタンスを作成して返します。
     * 
     * @param 
     *            {@link WeakHashMap}のキーの型
     * @param 
     *            {@link WeakHashMap}の値の型
     * @param m
     *            作成されるマップに配置されるマップ
     * @return {@link WeakHashMap}の新しいインスタンス
     * @see WeakHashMap#WeakHashMap(Map)
     */
    public static  WeakHashMap newWeakHashMap(final Map m) {
        return new WeakHashMap(m);
    }

    /**
     * マップが指定されたキーを含んでいない場合は、キーを指定された値に関連付けます。
     * 

* マップがすでに指定されたキーを含んでいる場合は、 キーに関連づけられている値を返します。 マップは変更されず、 指定された値は使われません。 * マップがまだ指定されたキーを含んでいない場合は、 指定された値を値を返します。 マップは変更され、指定されたキーと指定された値が関連づけられます。 * いずれの場合も、返される値はマップがその時点でキーと関連づけている値です。 *

* * @param * {@link HashMap}のキーの型 * @param * {@link HashMap}の値の型 * @param map * マップ * @param key * 指定される値が関連付けられるキー * @param value * 指定されるキーに関連付けられる値 * @return 指定されたキーと関連付けられていた以前の値または、キーに関連付けられる値 * @see ConcurrentHashMap#putIfAbsent(Object, Object) */ public static V putIfAbsent(final ConcurrentMap map, final K key, final V value) { V exists = map.putIfAbsent(key, value); if (exists != null) { return exists; } return value; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy