Java集合工具类(一)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集...
2012-08-28 15:33
731 查看
package com.sooal.tools;
import java.util.Set;
import java.util.Map;
import java.util.List;
import java.util.Queue;
import java.util.HashSet;
import java.util.HashMap;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.LinkedHashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
* 包含获得各种集合对象的常用方法的泛型工具类。
* <p>
* 如果要获得一个 {@code Map<String, String>} 的对象,可以通过下面的方式实现:
* {@literal Map<String, String> map = GenericUtils.getMap();}。但是不能直接作为参数使用,例如有这样一个方法:
* {@literal setInfo(Map<String, String>)},不能直接这样调用:<s>
* <code>setInfo(GenericUtils.getMap())</code></s>
* </p>
*
* @author Fuchun
* @version $Id: GenericUtils.java 4754 2011-03-26 19:50 fuchun $
*/
public class GenericUtils {
/**
* 用该方法来代替 {@code new HashMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.HashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getMap() {
return new HashMap<K, V>();
}
/**
* 用该方法来代替 {@code new HashMap<K, V>(int)} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.HashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getMap(int initialCapacity) {
return new HashMap<K, V>(initialCapacity);
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getConcurrentMap() {
return new ConcurrentHashMap<K, V>();
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>(int)} 方式获得新的 {@code java.util.Map}
* 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.Map<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getConcurrentMap(int initialCapacity) {
return new ConcurrentHashMap<K, V>(initialCapacity);
}
/**
* 用该方法来代替 {@code new LinkedHashMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.LinkedHashMap<K, V>}
* 实现的新实例。
*/
public static <K, V> Map<K, V> getLinkedMap() {
return new LinkedHashMap<K, V>();
}
/**
* 用该方法来代替 {@code new LinkedHashMap<K, V>(int)} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.LinkedHashMap<K, V>}
* 实现的新实例。
*/
public static <K, V> Map<K, V> getLinkedMap(int initialCapacity) {
return new LinkedHashMap<K, V>(initialCapacity);
}
/**
* 用该方法来代替 {@code new TreeMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.TreeMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getTreeMap() {
return new TreeMap<K, V>();
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>()} 方式获得新的
* {@code java.util.concurrent.ConcurrentHashMap} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.concurrent.ConcurrentMap<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> ConcurrentMap<K, V> getConcurrentHashMap() {
return new ConcurrentHashMap<K, V>();
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>(int)} 方式获得新的
* {@code java.util.concurrent.ConcurrentHashMap} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.concurrent.ConcurrentMap<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> ConcurrentMap<K, V> getConcurrentHashMap(int initialCapacity) {
return new ConcurrentHashMap<K, V>(initialCapacity);
}
import java.util.Set;
import java.util.Map;
import java.util.List;
import java.util.Queue;
import java.util.HashSet;
import java.util.HashMap;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.LinkedHashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
* 包含获得各种集合对象的常用方法的泛型工具类。
* <p>
* 如果要获得一个 {@code Map<String, String>} 的对象,可以通过下面的方式实现:
* {@literal Map<String, String> map = GenericUtils.getMap();}。但是不能直接作为参数使用,例如有这样一个方法:
* {@literal setInfo(Map<String, String>)},不能直接这样调用:<s>
* <code>setInfo(GenericUtils.getMap())</code></s>
* </p>
*
* @author Fuchun
* @version $Id: GenericUtils.java 4754 2011-03-26 19:50 fuchun $
*/
public class GenericUtils {
/**
* 用该方法来代替 {@code new HashMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.HashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getMap() {
return new HashMap<K, V>();
}
/**
* 用该方法来代替 {@code new HashMap<K, V>(int)} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.HashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getMap(int initialCapacity) {
return new HashMap<K, V>(initialCapacity);
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getConcurrentMap() {
return new ConcurrentHashMap<K, V>();
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>(int)} 方式获得新的 {@code java.util.Map}
* 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.Map<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getConcurrentMap(int initialCapacity) {
return new ConcurrentHashMap<K, V>(initialCapacity);
}
/**
* 用该方法来代替 {@code new LinkedHashMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.LinkedHashMap<K, V>}
* 实现的新实例。
*/
public static <K, V> Map<K, V> getLinkedMap() {
return new LinkedHashMap<K, V>();
}
/**
* 用该方法来代替 {@code new LinkedHashMap<K, V>(int)} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.LinkedHashMap<K, V>}
* 实现的新实例。
*/
public static <K, V> Map<K, V> getLinkedMap(int initialCapacity) {
return new LinkedHashMap<K, V>(initialCapacity);
}
/**
* 用该方法来代替 {@code new TreeMap<K, V>()} 方式获得新的 {@code java.util.Map} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.Map<K, V>} 关于 {@code java.util.TreeMap<K, V>} 实现的新实例。
*/
public static <K, V> Map<K, V> getTreeMap() {
return new TreeMap<K, V>();
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>()} 方式获得新的
* {@code java.util.concurrent.ConcurrentHashMap} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @return 返回 {@code java.util.concurrent.ConcurrentMap<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> ConcurrentMap<K, V> getConcurrentHashMap() {
return new ConcurrentHashMap<K, V>();
}
/**
* 用该方法来代替 {@code new ConcurrentHashMap<K, V>(int)} 方式获得新的
* {@code java.util.concurrent.ConcurrentHashMap} 的实例对象。
*
* @param <K> {@code Map} 中的键对象。
* @param <V> {@code Map} 中的值对象。
* @param initialCapacity 初始容量。
* @return 返回 {@code java.util.concurrent.ConcurrentMap<K, V>} 关于
* {@code java.util.concurrent.ConcurrentHashMap<K, V>} 实现的新实例。
*/
public static <K, V> ConcurrentMap<K, V> getConcurrentHashMap(int initialCapacity) {
return new ConcurrentHashMap<K, V>(initialCapacity);
}
相关文章推荐
- Java集合工具类(二)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集...
- Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集...
- java集合操作-----求两个集合的交集和并集
- JAVA Set集合---并集,交集,差集
- 定义元素类型为int、元素个数不受限制的集合类Set, 包括:<=(包含于)、==(相等)、!=(不等)、 |(并集)、 &(交集)、-(差集)、+=(增加元素)、-=(删除元素)等操作
- Python 集合set()添加删除、交集、并集、集合操作详解
- Java复习-操作集合的工具类collections List,Set,Map区别
- Python 集合set添加删除、交集、并集、集合操作符号
- Java set集合 交集,并集,差集
- java的集合操作(交集、并集、差集)整理
- Python 集合set()添加删除、交集、并集、集合操作详解
- Python 集合set添加删除、交集、并集、集合操作符号
- Python 集合set添加删除、交集、并集、集合操作符号
- javaSet集合的并集、差集、交集
- java guava 集合的操作:交集、差集、并集
- Python 集合set()添加删除、交集、并集、集合操作详解
- java集合操作-----求两个集合的交集和并集
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
- 1006--Java集合--操作集合的工具类:Collections
- IOS开发中集合操作 处理数据的 交集 并集 差集