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. Beamer加中文

    \documentclass{beamer} \mode<presentation> { \usetheme{CambridgeUS} % or try Darmstadt, Madrid ...

  2. 福昕阅读器打开PDF文档速度慢

    RT---------------- 操作如下两步可加快打开速度: 1.Program Files\Foxit Software\Foxit Reader下面的Shell Extensions文件夹删 ...

  3. ChemDraw 15出现安装异常如何处理

    化学绘图软件ChemDraw最近更新了,更新后的是2015版本,ChemDraw Professional 15是其中组件之一.一些用户朋友在使用ChemDraw 15的过程中由于对软件的不了解往往会 ...

  4. 文件存储 FileUtil FileBaseDto

    package com.guige.base.fileutils; import com.alibaba.fastjson.JSONArray; import com.aliyun.oss.Servi ...

  5. adb连接夜神模拟器

    1.打开夜神模拟器,打开设置,调成手机模式,初次进入的话,进入设置,点击版本号5次,可以激活使用开发者模式,进入后打开USB调试功能 2.打开文件资源管理器,进入夜神模拟器的安装位置,在地址栏输入cm ...

  6. JavaScript严格模式为何要禁用With语句

    看了很多遍JavaScript严格模式,其中有说“禁用With语句”,以前看到这都是骑马观花,一带而过,因为平时就很少用到这个语句,禁不禁用对自己关系都不是很大.今天禁不住想知道为何“严格模式”就容不 ...

  7. IIPP迷你项目(一)“Rock-paper-scissor-lizard-Spock”

    0 前言——关于IIPP 本系列博客的内容均来自<An Introduction to Interactive Programming in Python (Part 1)>(在此我简称为 ...

  8. 借助EasyNTS云组网,无需拉专线,也能解决设备现场无公网固定IP的问题

    一.产品背景 为了帮助企业和个人用户解决网络访问和设备控制的问题,我们研发了一款创新型产品:EasyNTS云组网系统.什么是EasyNTS,什么是云组网呢? 在解释之前,我们先来了解几个在凡是涉及网络 ...

  9. oracle中如何判断某个日期是星期几

    SELECT to_char(to_date('2011-03-13','YYYY-MM-DD'),'d') FROM DUAL 其中 红色部分为传入日期 to_char的其他用法 Select to ...

  10. php var_dump()函数的详解

    说明:var_dump()方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型.显示关于一个或多个表达式的结构信息,包括表达式的类型与值.数组将递归展开值, ...