package com.sicdt.library.core.utils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map; /**
*
* <br>类 名: 集合,数组工具
* <br>描 述: 描述类完成的主要功能
* <br>作 者: shizhenwei
* <br>创 建: 2017年5月15日
* <br>版 本: v0.0.2
* <br>
* <br>历 史: (版本) 作者 时间 注释
*/
public class ArrayUtils { /**
* 判断是否为空
* @param collection
* @return
*/
public static boolean isEmpty(Collection<?> collection){
return collection == null || collection.isEmpty();
} /**
* 判断是否为空
* @param map
* @return
*/
public static boolean isEmpty(Map<?, ?> map){
return map == null || map.isEmpty();
} /**
* 判断是否为空
* @param array
* @return
*/
public static boolean isEmpty(Object[] array){
return array == null || array.length == 0;
} /**
* 判断是否为空
* @param array
* @return
*/
public static boolean isEmpty(List<Object> array){
return array == null || array.size() == 0;
} public static boolean isArray(Object object) {
if(object == null){
return false;
}
return object.getClass().isArray();
} public static boolean isCollection(Object object) {
return object instanceof Collection;
} @SuppressWarnings("unchecked")
public static <T> T[] objectToArray(Object obj) {
if(obj == null){
return (T[])new Object[0];
}
if(isArray(obj)){
return (T[])obj;
}else if(isCollection(obj)){
return (T[]) ((Collection<T>)obj).toArray();
}
return (T[]) new Object[]{obj};
} @SuppressWarnings("unchecked")
public static <T> List<T> objectToList(Object obj){
if(obj == null){
return Collections.emptyList();
}
if(isArray(obj)){
return Arrays.asList((T[])obj);
}else if(isCollection(obj)){
return new ArrayList<T>((Collection<T>)obj);
}
List<T> list = new ArrayList<T>();
list.add((T) obj);
return list;
} public static int size(Object obj){
if(obj == null){
return 0;
}
if(isArray(obj)){
return ((Object[])obj).length;
}
if(isCollection(obj)){
return ((Collection<?>)obj).size();
}
return -1;
} public static <T> boolean contains(T[] array, Object obj){
return Arrays.asList(array).contains(obj);
}
}

JAVA ArrayUtils 数组工具类的更多相关文章

  1. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  2. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  3. 数组工具类 - ArrayUtil.java

    数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...

  4. java数组 数组工具类Arrays

    一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...

  5. Java学习:数组工具类Arrays

    数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...

  6. Java中Arrays数组工具类的使用全解

    本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...

  7. java格式处理工具类

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...

  8. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  9. java 解析excel工具类

      java 解析excel工具类 CreateTime--2018年3月5日16:48:08 Author:Marydon ReadExcelUtils.java import java.io.Fi ...

随机推荐

  1. 记录下push推送优化改进点

    一)自主研发的push服务的特点及优势: 1) 消息回执确认(ack); 2) 有效期推送(设置消息的有效期); 3) 精准推送(设置设备组别推送); 4) 下发任务分解(拆分任务,多进程); 5) ...

  2. src.rpm包安装方法

    有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译.这类软件包有多种安装方法,以redhat为例说明如下: 注意: 如果没有rpmbuild可以从系统安装光 ...

  3. P​H​P​制​作​姓​名​、​学​号​。​爱​好​等​窗​口

    if (radioButton1.Checked == true)                textBox2.Text = 姓名: + textBox1.Text +    性别: + radi ...

  4. nginx 在浏览器端保持cookie 一致

    一般来说,我们在java中都通过如下代码进行用户登录后的服务端注册,并且在用户下次请求时无需再登陆一遍,这就是Servlet的Session.使用了这种Session策略,那么Web容器比如tomca ...

  5. SSL证书的生成

    openssl工具下载路径:链接:https://pan.baidu.com/s/1o0-s8OplHZt55Cio2HmjVA 密码:u759 1.使用openssl工具生成一个RSA秘钥      ...

  6. 【BZOJ1449/2895】[JSOI2009]球队收益/球队预算 最小费用最大流

    [BZOJ2895]球队预算 Description 在一个篮球联赛里,有n支球队,球队的支出是和他们的胜负场次有关系的,具体来说,第i支球队的赛季总支出是Ci*x^2+Di*y^2,Di<=C ...

  7. AJAX与后台交互传参的两种方式

    工作中的简单总结备忘,防遗失. 第一种:直接传入json数据(后台一个一个入参对接) 1- js请求: var data = {}; data = {"infoId":infoId ...

  8. c#数据格式转换汇总

    时间差的公式,求出时间相差的转换成刻度值 DateTime endTime = , , , , , , , , , , , , ); TimeSpan temp = new TimeSpan(star ...

  9. Grafana----Table Panel

    新的表面板非常灵活,既支持时间序列的多模式,也支持表.注释和原始JSON数据.它还提供日期格式化和值格式化和着色选项.要查看表板动作和测试不同的配置数据,查看台面板展示在grafana操场. Opti ...

  10. <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性

    <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性