您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java集合工具类

2025/9/4 13:33:37发布20次查看
泛型集合工具类,用于便捷快速的定义、操作集合。包含set的交集、并集、差集、补集等操作。
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; /** * 包含获得各种集合对象的常用方法的泛型工具类。 * * 如果要获得一个 {@code map} 的对象,可以通过下面的方式实现: * {@literal map map = genericutils.getmap();}。但是不能直接作为参数使用,例如有这样一个方法: * {@literal setinfo(map)},不能直接这样调用: * setinfo(genericutils.getmap()) *
* * @author fuchun * @version $id: genericutils.java 4754 2011-03-26 19:50 fuchun $ */ public class genericutils { /** * 用该方法来代替 {@code new hashmap()} 方式获得新的 {@code java.util.map} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @return 返回 {@code java.util.map} 关于 {@code java.util.hashmap} 实现的新实例。 */ public static map getmap() { return new hashmap(); } /** * 用该方法来代替 {@code new hashmap(int)} 方式获得新的 {@code java.util.map} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @param initialcapacity 初始容量。 * @return 返回 {@code java.util.map} 关于 {@code java.util.hashmap} 实现的新实例。 */ public static map getmap(int initialcapacity) { return new hashmap(initialcapacity); } /** * 用该方法来代替 {@code new concurrenthashmap()} 方式获得新的 {@code java.util.map} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @return 返回 {@code java.util.map} 关于 * {@code java.util.concurrent.concurrenthashmap} 实现的新实例。 */ public static map getconcurrentmap() { return new concurrenthashmap(); } /** * 用该方法来代替 {@code new concurrenthashmap(int)} 方式获得新的 {@code java.util.map} * 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @param initialcapacity 初始容量。 * @return 返回 {@code java.util.map} 关于 * {@code java.util.concurrent.concurrenthashmap} 实现的新实例。 */ public static map getconcurrentmap(int initialcapacity) { return new concurrenthashmap(initialcapacity); } /** * 用该方法来代替 {@code new linkedhashmap()} 方式获得新的 {@code java.util.map} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @return 返回 {@code java.util.map} 关于 {@code java.util.linkedhashmap} * 实现的新实例。 */ public static map getlinkedmap() { return new linkedhashmap(); } /** * 用该方法来代替 {@code new linkedhashmap(int)} 方式获得新的 {@code java.util.map} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @param initialcapacity 初始容量。 * @return 返回 {@code java.util.map} 关于 {@code java.util.linkedhashmap} * 实现的新实例。 */ public static map getlinkedmap(int initialcapacity) { return new linkedhashmap(initialcapacity); } /** * 用该方法来代替 {@code new treemap()} 方式获得新的 {@code java.util.map} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @return 返回 {@code java.util.map} 关于 {@code java.util.treemap} 实现的新实例。 */ public static map gettreemap() { return new treemap(); } /** * 用该方法来代替 {@code new concurrenthashmap()} 方式获得新的 * {@code java.util.concurrent.concurrenthashmap} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @return 返回 {@code java.util.concurrent.concurrentmap} 关于 * {@code java.util.concurrent.concurrenthashmap} 实现的新实例。 */ public static concurrentmap getconcurrenthashmap() { return new concurrenthashmap(); } /** * 用该方法来代替 {@code new concurrenthashmap(int)} 方式获得新的 * {@code java.util.concurrent.concurrenthashmap} 的实例对象。 * * @param {@code map} 中的键对象。 * @param {@code map} 中的值对象。 * @param initialcapacity 初始容量。 * @return 返回 {@code java.util.concurrent.concurrentmap} 关于 * {@code java.util.concurrent.concurrenthashmap} 实现的新实例。 */ public static concurrentmap getconcurrenthashmap(int initialcapacity) { return new concurrenthashmap(initialcapacity); } /** * 用该方法来代替 {@code new arraylist()} 方式获得新的 {@code java.util.list} 的实例对象。 * * @param {@code list} 中保存的对象。 * @return 返回 {@code java.util.list} 关于 {@code java.util.arraylist} 实现的新实例。 */ public static list getlist() { return new arraylist(); } /** * 用该方法来代替 {@code new arraylist(int)} 方式获得新的 {@code java.util.list} 的实例对象。 * * @param {@code list} 中保存的对象。 * @param initialcapacity 列表的初始容量。 * @return 返回 {@code java.util.list} 关于 {@code java.util.arraylist} 实现的新实例。 */ public static list getlist(int initialcapacity) { return new arraylist(initialcapacity); } /** * 用该方法来代替 {@code new arraylist()} 方式获得新的 {@code java.util.list} 的实例对象。 * * @param {@code list} 中保存的对象。 * @param c 其中的元素将存放在新的 {@code list} 中的 {@code collection}。 * @return 返回 {@code java.util.list} 关于 {@code java.util.arraylist} 实现的新实例。 */ public static list getlist(collection c) { if (objectutils.isnotempty(c)) return new arraylist(c); return new arraylist(); } /** * 用该方法来代替 {@code new linkedlist()} 方式获得新的 {@code java.util.list} 的实例对象。 * * @param {@code list} 中保存的对象。 * @return 返回 {@code java.util.list} 关于 {@code java.util.linkedlist} 实现的新实例。 */ public static list getlinkedlist() { return new linkedlist(); } /** * 用该方法来代替 {@code new hashset()} 方式获得新的 {@code java.util.set} 的实例对象。 * * @param {@code set} 中保存的对象。 * @return 返回 {@code java.util.set} 关于 {@code java.util.hashset} 实现的新实例。 */ public static set gethashset() { return new hashset(); } /** * 用该方法来代替 {@code new hashset(int)} 方式获得新的 {@code java.util.set} 的实例对象。 * * @param {@code set} 中保存的对象。 * @param initialcapacity 列表的初始容量。 * @return 返回 {@code java.util.set} 关于 {@code java.util.hashset} 实现的新实例。 */ public static set gethashset(int initialcapacity) { return new hashset(initialcapacity); } /** * 用该方法来代替 new hashset(collection c) 方式获得新的 * {@code java.util.set} 的实例对象。 * * @param {@code set} 中保存的对象。 * @param c 其中的元素将存放在新的 {@code set} 中的 {@code collection}。 * @return 返回 {@code java.util.set} 关于 {@code java.util.hashset} 实现的新实例。 */ public static set gethashset(collection c) { if (objectutils.isempty(c)) return new hashset(); return new hashset(c); } /** * 用该方法来代替 {@code new treeset()} 方式获得新的 {@code java.util.set} 的实例对象。 * * @param {@code set} 中保存的对象。 * @return 返回 {@code java.util.set} 关于 {@code java.util.treeset} 实现的新实例。 */ public static set gettreeset() { return new treeset(); } /** * 用该方法来代替 new treeset(collection c) 方式获得新的 * {@code java.util.set} 的实例对象。 * * @param {@code set} 中保存的对象。 * @param c 其中的元素将存放在新的 {@code set} 中的 {@code collection}。 * @return 返回 {@code java.util.set} 关于 {@code java.util.treeset} 实现的新实例。 */ public static set gettreeset(collection c) { if (objectutils.isempty(c)) return new treeset(); return new treeset(c); } /** * 用该方法来代替 {@code new linkedlist()} 方式获得新的 {@code java.util.queue} 的实例对象。 * * @param {@code queue} 中保存的对象。 * @return 返回 {@code java.util.queue} 关于 {@code java.util.linkedlist} 实现的新实例。 */ public static queue getqueue() { return new linkedlist(); } /** * 合并两个有相同元素类型的 {@code java.util.set}。 * * {@code seta == null && setb == null} --> 返回 {@link #gethashset()}。 * {@code seta != null && setb == null} --> 返回 {@code seta}。 * {@code seta == null && setb != null} --> 返回 {@code setb}。 * {@code seta != null && setb != null} --> 返回 {@code seta} 和 {@code setb} 的并集。 * * * * @param {@code set} 中保存的对象。 * @param seta 第一个 {@code set}。 * @param setb 第二个 {@code set}。 * @return 返回 {@code seta} 和 {@code setb} 的并集。 */ public static set unionhashset(set seta, set setb) { boolean isemptyseta = objectutils.isempty(seta); boolean isemptysetb = objectutils.isempty(setb); if (isemptyseta && isemptysetb) return gethashset(); if (isemptyseta && !isemptysetb) return setb; if (!isemptyseta && isemptysetb) return seta; set result = gethashset(seta); result.addall(setb); return result; } /** * 取两个有相同元素类型的 {@code java.util.set} 的交集,即公共部份的新的 {@code java.util.set}。 * * {@code seta == null && setb == null} --> 返回 {@code null}。 * {@code seta != null && setb == null} --> 返回 {@code null}。 * {@code seta == null && setb != null} --> 返回 {@code null}。 * {@code seta != null && setb != null} --> 返回 {@code seta} 和 {@code setb} 的交集。 * * * * @param {@code set} 中保存的对象。 * @param seta 第一个 {@code set}。 * @param setb 第二个 {@code set}。 * @return 返回 {@code seta} 和 {@code setb} 的交集。 */ public static set intersecthashset(set seta, set setb) { if (objectutils.isempty(seta) || objectutils.isempty(setb)) return null; set result = gethashset(seta); result.retainall(setb); return result; } /** * 移除 {@code seta} 中那些包含在 {@code setb} 中的元素。
* 此方法不会修改 {@code seta},只是复制一份作相应操作,返回的是全新的 {@code set} 对象。 * * {@code seta == null} --> 返回 {@code null}。 * {@code setb == null} --> 返回 {@code seta}。 * {@code seta != null && setb != null} --> 返回 {@code seta} 和 {@code setb} * 的不对称差集。 * * * @param {@code set} 中保存的对象。 * @param seta 第一个 {@code set}。 * @param setb 第二个 {@code set}。 * @return 返回 {@code seta} 和 {@code setb} 的不对称差集。 */ public static set differencehashset(set seta, set setb) { if (objectutils.isempty(seta)) return null; if (objectutils.isempty(setb)) return seta; set result = gethashset(seta); result.removeall(setb); return result; } /** * 取两个有相同元素类型的 {@code java.util.set} 的补集。 * * @param {@code set} 中保存的对象。 * @param seta 第一个 {@code set}。 * @param setb 第二个 {@code set}。 * @return 返回 {@code seta} 和 {@code setb} 的补集。 */ public static set complementhashset(set seta, set setb) { return differencehashset(unionhashset(seta, setb), intersecthashset(seta, setb)); } }
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product