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. sql limit offset 区别

    select * from table limit 2,1;                  //含义是跳过2条取1条数据,即读取第3条数据 select * from table limit 2 ...

  2. makefile编写---.so动态库的生成和调用

    http://blog.sina.com.cn/s/blog_559f6ffc0100fl3z.html  动静 http://blog.csdn.net/yuyunliuhen/article/de ...

  3. 2015-2016ACM-ICPC NEER northern-subregional-contest C Concatenation

    可以在这里提交: http://codeforces.com/gym/100801 题目大意: 给出两个由小写字母组成的字符串S,T,从S中取一个非空前缀,从T中取一个非空后缀,拼接成一个新的字符串. ...

  4. JavaScript中trim 方法实现

    Java中的 String 类有个trim() 能够删除字符串前后的空格字符.jQuery中也有trim()方法能够删除字符变量前后的字符串. 可是JavaScript中却没有对应的trim() 方法 ...

  5. 基于python的七种经典排序算法(转)

    一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性:经过某种排序后,如果两个 ...

  6. faceswap

    https://github.com/deepfakes/faceswap https://anonfile.com/p7w3m0d5be

  7. 如何获取继承中泛型T的类型

    @SuppressWarnings("unchecked") public void testT() { clazz = (Class<T>)( (Parameteri ...

  8. HDU3062-Party(2-SAT)

    pid=3062">题目链接 思路:2-SAT的模版题 代码: #include <iostream> #include <cstdio> #include & ...

  9. linux 下shell程序(二)

    输入和输出 输入指的是Shell程序读入数据.有从文件读取.从用户输入读取等方式读入数据.输出指的是Shell程序的运行 结果的处理,可以显示到屏幕或保存到文件. 用ceho命令输出结果 echo $ ...

  10. Android无线测试之—Genymotion配置过程中常见问题

    一.前提条件: 已经部署好了Android UiAutomator测试环境. 二.在部署Genymotion时遇到了两类问题: 1.通过eclipse打开一个模拟设备,然后将编译好的jar包push到 ...