- 浏览: 6957 次
文章分类
最新评论
JAVA基础篇【工具类】CollectionUtil 集合操作工具类 TG【20130318整理】
- 博客分类:
- 02000-编程语言
- 02100---JAVA
集合操作工具类
import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; /** * 集合(List,Map,Set)辅助类。 * @author Elfy * @date 2013年02月25日 */ public class CollectionUtil { /** * 功能:从List中随机取出一个元素。 * @author Elfy * @date 2013年02月25日 * @param objs 源List * @return T List的一个元素 */ public static <T> T randomOne(List<T> list){ if(isEmpty(list)){ return null; } return list.get(MathUtil.randomNumber(0, list.size())); } /** * 功能:从数组中随机取出一个元素。 * @author Elfy * @date 2013年02月25日 * @param objs 源数组 * @return T 数组的一个元素 */ public static <T> T randomOne(T[] objs){ if(isEmpty(objs)){ return null; } return objs[MathUtil.randomNumber(0, objs.length)]; } /** * 功能:数组中是否存在这个元素。 * @author Elfy * @date 2013年02月25日 * @param objArr 数组 * @param compare 元素 * @return 存在返回true,否则返回false。 */ public static <T> boolean arrayContain(T[] objArr,T compare){ if(isEmpty(objArr)){ return false; } for(T obj : objArr){ if(obj.equals(compare)){ return true; } } return false; } /** * 功能:向list中添加数组。 * @author Elfy * @date 2013年02月25日 * @param list List * @param array 数组 */ public static <T> void addArrayToList(List<T> list, T[] array) { if (isEmpty(list)) { return; } for (T t : array) { list.add(t); } } /** * 功能:将数组进行反转,倒置。 * @author Elfy * @date 2013年02月25日 * @param objs 源数组 * @return T[] 反转后的数组 */ public static <T> T[] reverseArray(T[] objs){ if(isEmpty(objs)){ return null; } T[] res=(T[])java.lang.reflect.Array.newInstance(objs[0].getClass(), objs.length); //新序号 int k=0; for(int i=objs.length-1 ; i>=0 ; i--){ res[k++]=objs[i]; } return res; } /** * 功能:将数组转为list。 * @author Elfy * @date 2013年02月25日 * @param objs 源数组 * @return List */ public static <T> List<T> arrayToList(T[] objs){ if(isEmpty(objs)){ return null; } List<T> list=new LinkedList<T>(); for(T obj : objs){ list.add(obj); } return list; } /** * 功能:将list转为数组。 * @author Elfy * @date 2013年02月25日 * @param list 源list * @return T[] */ public static <T> T[] listToArray(List<T> list){ if(isEmpty(list)){ return null; } T[] objs=(T[])java.lang.reflect.Array.newInstance(list.get(0).getClass(), list.size()); int i=0; //数组下标。 for(T obj : list){ objs[i++]=obj; } return objs; } /** * 将一个字符串数组的内容全部添加到另外一个数组中,并返回一个新数组。 * @param array1 第一个数组 * @param array2 第二个数组 * @return T[] 拼接后的新数组 */ public static <T> T[] concatenateArrays(T[] array1, T[] array2) { if (isEmpty(array1)) { return array2; } if (isEmpty(array2)) { return array1; } T[] resArray=(T[])java.lang.reflect.Array.newInstance(array1[0].getClass(), array1.length+array2.length); System.arraycopy(array1, 0, resArray, 0, array1.length); System.arraycopy(array2, 0, resArray, array1.length, array2.length); return resArray; } /** * 将一个object添加到一个数组中,并返回一个新数组。 * @param array被添加到的数组 * @param object 被添加的object * @return T[] 返回的新数组 */ public static <T> T[] addObjectToArray(T[] array, T obj) { //结果数组 T[] resArray=null; if (isEmpty(array)) { resArray=(T[])java.lang.reflect.Array.newInstance(obj.getClass(), 1); resArray[0]=obj; return resArray; } //原数组不为空时。 resArray=(T[])java.lang.reflect.Array.newInstance(array[0].getClass(), array.length+1); System.arraycopy(array, 0, resArray, 0, array.length); resArray[array.length] = obj; return resArray; } /** * 功能:判断数组是不是空。(null或者length==0) * @author Elfy * @date 2013年02月25日 * @param array 数组 * @return boolean 空返回true,否则返回false。 */ public static <T> boolean isEmpty(T[] array) { return (array == null || array.length==0); } /** * 功能:集合是否为空。如果传入的值为null或者集合不包含元素都认为为空。 * @author Elfy * @date 2013年02月25日 * @param collection 集合 * @return boolean 为空返回true,否则返回false。 */ public static boolean isEmpty(Collection collection) { return (collection == null || collection.isEmpty()); } /** * 功能:Map是否为空。如果传入的值为null或者集合不包含元素都认为为空。 * @author Elfy * @date 2013年02月25日 * @param map Map * @return boolean 为空返回true,否则返回false。 */ public static boolean isEmpty(Map map) { return (map == null || map.isEmpty()); } }
发表评论
-
spring MVC原理 TG【2013-04-08】
2017-04-28 11:28 681概述--Spring MVC工作流程图 图一 ... -
JAVA基础篇【工具类】加密解密(一)DES加密和解密 TG【20130331整理】
2016-11-28 10:24 0import java.io.UnsupportedEn ... -
JAVA基础篇【工具类】MathUtil 数学运算辅助类TG【20130324整理】
2016-11-28 10:17 583数学运算辅助类,希望对大家有所帮助 import java ... -
JAVA基础篇【工具类】ZipUtil zip工具类 TG【20130318整理】
2016-11-28 10:03 858import java.io.BufferedInputS ... -
JAVA基础篇【工具类】 SpellHelper 汉字转拼音 TG【20130318整理】
2016-11-28 10:00 493SpellHelper 该类是将汉字转化为拼音的工具类 ... -
JAVA基础篇【工具类】FtpUtil TG【20130317整理】
2016-11-28 09:51 289Ftp工具 在我们编程的时候,我们经常会遇到链接ftp存文件和 ... -
推荐CSS工具资源TG【20110309整理】
2016-11-14 17:27 402456 Berea Street http://www.45 ... -
JAVA基础篇【工具类】StringUtilsTG【20130316整理】
2016-11-14 17:29 366JAVA基础篇【工具类】StringUtilsTG【20110 ... -
浅谈JavaScript&TypeeScriptTG【20130305整理】
2016-11-14 17:02 5051.JavaScript 在1995年时 ...
相关推荐
这些基础工具类库的引入为后续的语法分析提供了强大的支持。 #### 2. 优先级判断函数 `preced(char a, char b)` 该函数用于判断两个符号之间的优先级关系,是整个语法分析过程中一个非常重要的组成部分。它通过查找...
文章还提供了该研究的分类信息,TH166和TG506分别表示其涉及到的机械制造技术和金属加工技术领域,文献标识码A表明这是一篇学术研究性质的文章。这篇文章的研究成果不仅对制造业具有指导意义,也对推动智能控制系统...
这篇文章是关于一场名为KCTF的安全竞赛中的第六题——"Repwn1"的解题思路和点评。这道题目结合了pwn(利用程序漏洞获取控制权)和re(逆向工程)两种技术,旨在测试参赛者的综合能力,特别是对DES(Data Encryption ...
科研论文一般包括**论点**、**论据**和**论证**(选项 b),这是构成一篇完整论文的基础要素。 #### 2. 超文本链接 在浏览网页时,鼠标变成小手图标的地方通常代表这里有**超文本链接**(选项 b),点击可以跳转到...
通过运用逆向工程,可以有效地复原产品的CAD模型,随后通过数值模拟工具如Dynaform软件,可以对冲压过程进行模拟,以便对工艺参数进行优化。这不仅确保了工艺设计的合理性,而且为后续的模具设计和制造提供了坚实的...
- 文档中提到的信息资源的收集、组织、加工、标引、保存和发布的过程,是信息资源管理的重要环节,这涉及到信息的筛选、分类、整理和更新等工作。 - 建成的信息资源库应具备良好的数据库框架,这意味着数据库设计...
在当代科学与工程研究领域,微分方程作为一种强大的数学工具,被广泛应用于描述自然现象、工程技术中的动态过程以及解决各种实际问题。然而,微分方程的解析解往往难以获得,特别是在方程本身过于复杂或没有通用解析...
本篇文档是一篇关于机器人抛光技术的研究文献,重点讨论了面向曲面的机器人摆线抛光轨迹及速度优化问题。以下是对该文献内容的知识点的详细解析。 首先,文档提出的背景是抛光技术在现代精密制造中的重要性。抛光...
微分方程组是描述许多物理、工程、生物和经济现象的重要工具,它们通常难以找到精确的解析解,因此数值解法成为了解决这类问题的关键。这篇PPT学习教案主要探讨了微分方程组的解法,特别是通过Matlab软件进行数值解...
换句话说,对于任意的\(f, g\)和常数\(c\),存在常数\(C\)使得\(|T(f+g)| \leq C(|Tf|+|Tg|)\)或\(|T(cf)| = C|Tf|\)。这类算子在泛函分析和调和分析中非常重要。 Calderón-Zygmund算子是一类特殊的奇异积分算子,...