java数组操作工具类
package com.zuidaima.util.common;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;/*** 数组操作辅助类,支持int,char,boject,String类型*@author www.zuidaima.com*/
public class ArrayHelper {/*** 锁定创建*/private ArrayHelper() {}/*** * 计算数组中的单元数目或对象中的属性个数* 当 arr 为 null 时返回 0。* * @param arr* @return*/public static int sizeOf(int[] arr) {return arr == null ? 0 : arr.length;}/*** * 合并一个或多个数组* 当 arr 为 null 时返回 new int[0] 。* * @param arrs* @return*/public static int[] merge(int[]... arrs) {int[] result = new int[0];if (arrs != null) {int count = 0;for (int i = 0; i < arrs.length; i++) {count += arrs[i].length;}result = new int[count];int arg;int k = 0;for (int i = 0; i < arrs.length; i++) {if (arrs[i] == null) {continue;}for (int j = 0; j < arrs[i].length; j++) {arg = arrs[i][j];result[k] = arg;k++;}}}return result;}/*** * 计算数组的差集* 注意:* aArr 为null时 返回 bArr(可能为 null)。* bArr 为null时 返回 aArr。* 无差集时返回 new int[0];* * @param aArr* @param bArr* @return*/public static int[] diff(int[] aArr, int[] bArr) {{if (aArr == null) {return bArr;}if (bArr == null) {return aArr;}}int[] cArr = new int[aArr.length + bArr.length];int idx = 0;/*** 检查 a 中那些元 在 b 中不存在*/for (int i = 0; i < aArr.length; i++) {if (!inArray(bArr, aArr[i])) {cArr[idx++] = aArr[i];}}/*** 检查 b 中那些元 在 a 中不存在*/for (int i = 0; i < bArr.length; i++) {if (!inArray(aArr, bArr[i])) {cArr[idx++] = bArr[i];}}//int[] dArr = new int[idx];System.arraycopy(cArr, 0, dArr, 0, dArr.length);return dArr;}/*** * 返回一个数组的全复制* 当 arr 为 null 时返回 new int[0] 。* * @param arr* @return*/public static int[] copyOf(int[] arr) {int[] carr = new int[0];if (arr != null) {carr = new int[arr.length];System.arraycopy(arr, 0, carr, 0, arr.length);}return carr;}/*** * 返回一个数组的复制* 当 arr 为 null 时返回 new int[0] 。* * @param arr* @param i* @return*/public static int[] copyOf(int[] arr, int i) {int[] carr = new int[0];if (arr != null) {if (i > arr.length) {i = arr.length;}carr = new int[i];System.arraycopy(arr, 0, carr, 0, i);}return carr;}/*** * 创建一个Map,用一个数组的值作为其键名,另一个数组的值作为其值* 当键为空或无单元时返回空Map,否则以键数组为主导填充Map。值不足时填充null。* 注意:Map中键顺序并不一定与参数keys顺序相同。* @param * @param * @param keys* @param values* @return*/public static Map combine(T[] keys, V[] values) {Map map = new HashMap();if (keys != null && keys.length > 0) {int vsize = values == null ? 0 : values.length;for (int i = 0; i < keys.length; i++) {if (i >= vsize) {map.put(keys[i], null);} else {map.put(keys[i], values[i]);}}}return map;}/*** * 从数组中随机取出一个或多个单元* 当 arr 为 null 时返回 new int[0]。* * @param arr* @return*/public static int[] random(int[] arr) {if (arr == null) {return new int[0];}int count = new Random().nextInt(arr.length);count = count > 0 ? count : 1;return random(arr, count);}/*** * 将数组打乱* 当 arr 为 null 时返回 new int[0]。* * @param arr* @return*/public static int[] shuffle(int[] arr) {if (arr == null) {return new int[0];}return random(arr, arr.length);}/*** * 随机取出固定数量的元素* 如取出数量大于数组元素数则返回打乱的数组,等同于 {@link #shuffle}* 当 arr 为 null 时返回 new int[0]。* * @param arr* @param count* @return*/public static int[] random(int[] arr, int count) {int[] rarr = new int[0];if (arr != null) {if (arr.length < count) {count = arr.length;}Random random = new Random();int i = 0;int num = 0;rarr = new int[count];int[] keys = new int[count];for (int j = 0; j < keys.length; j++) {keys[j] = -1;}do {num = random.nextInt(arr.length);if (!inArray(keys, num)) {keys[i] = num;rarr[i] = arr[num];i++;}} while (i < count);}return rarr;}/*** * 检查数组中是否存在某个值* * @param arr* @param search* @return*/public static boolean inArray(int[] arr, int search) {if (arr != null) {for (int i = 0; i < arr.length; i++) {if (arr[i] == search) {return true;}}}return false;}/*** * 检查数组中是否存在某几个值* * @param arr* @param search* @return*/public static boolean inArray(int[] arr, int[] search) {if (search != null) {for (int i = 0; i < search.length; i++) {if (!inArray(arr, search[i])) {return false;}}return true;}return false;}/*** * 检查数组中是否存在某个值,并返回其索引键,不存在则返回 -1 。* * @param arr* @param search* @return*/public static int search(int[] arr, int search) {if (arr != null) {for (int i = 0; i < arr.length; i++) {if (arr[i] == search) {return i;}}}return -1;}/*** * 返回一个单元顺序相反的数组 * 当 arr 为 null 时返回 new int[0]。* * @param arr* @return*/public static int[] reverse(int[] arr) {int[] rarr = new int[0];if (arr != null) {rarr = new int[arr.length];int j = 0;for (int i = arr.length - 1; i >= 0; i--) {rarr[j++] = arr[i];}}return rarr;}/*** 使用间隔符连接* @param ints* @param sep* @return*/public static String join(int[] ints, String sep) {StringBuilder strBuilder = new StringBuilder();if (ints != null) {for (int i = 0; i < ints.length; i++) {strBuilder.append(ints[i]);if (i < ints.length - 1) {strBuilder.append(sep);}}}return strBuilder.toString();}/*** 计算所有单元的合* @param ints* @param sep* @return*/public static int sum(int[] ints) {int sum = 0;if (ints != null) {for (int i = 0; i < ints.length; i++) {sum += ints[i];}}return sum;}/*** char array tools* =====================*//*** * 计算数组中的单元数目或对象中的属性个数* 当 arr 为 null 时返回 0。* * @param arr* @return*/public static int sizeOf(char[] arr) {return arr == null ? 0 : arr.length;}/*** * 合并一个或多个数组* 当 arr 为 null 时返回 new char[0] 。* * @param arrs* @return*/public static char[] merge(char[]... arrs) {char[] result = new char[0];if (arrs != null) {char count = 0;for (char i = 0; i < arrs.length; i++) {count += arrs[i].length;}result = new char[count];char arg;char k = 0;for (char i = 0; i < arrs.length; i++) {if (arrs[i] == null) {continue;}for (char j = 0; j < arrs[i].length; j++) {arg = arrs[i][j];result[k] = arg;k++;}}}return result;}/*** * 计算数组的差集* 注意:* aArr 为null时 返回 bArr(可能为 null)。* bArr 为null时 返回 aArr。* 无差集时返回 new char[0];* * @param aArr* @param bArr* @return*/public static char[] diff(char[] aArr, char[] bArr) {{if (aArr == null) {return bArr;}if (bArr == null) {return aArr;}}char[] cArr = new char[aArr.length + bArr.length];char idx = 0;/*** 检查 a 中那些元 在 b 中不存在*/for (int i = 0; i < aArr.length; i++) {if (!inArray(bArr, aArr[i])) {cArr[idx++] = aArr[i];}}/*** 检查 b 中那些元 在 a 中不存在*/for (int i = 0; i < bArr.length; i++) {if (!inArray(aArr, bArr[i])) {cArr[idx++] = bArr[i];}}//char[] dArr = new char[idx];System.arraycopy(cArr, 0, dArr, 0, dArr.length);return dArr;}/*** * 返回一个数组的全复制* 当 arr 为 null 时返回 new char[0] 。* * @param arr* @return*/public static char[] copyOf(char[] arr) {char[] carr = new char[0];if (arr != null) {carr = new char[arr.length];System.arraycopy(arr, 0, carr, 0, arr.length);}return carr;}/*** * 返回一个数组的复制* 当 arr 为 null 时返回 new char[0] 。* * @param arr* @param i* @return*/public static char[] copyOf(char[] arr, int i) {char[] carr = new char[0];if (arr != null) {if (i > arr.length) {i = arr.length;}carr = new char[i];System.arraycopy(arr, 0, carr, 0, i);}return carr;}/*** * 从数组中随机取出一个或多个单元* 当 arr 为 null 时返回 new char[0]。* * @param arr* @return*/public static char[] random(char[] arr) {if (arr == null) {return new char[0];}int count = new Random().nextInt(arr.length);count = count > 0 ? count : 1;return random(arr, count);}/*** * 将数组打乱* 当 arr 为 null 时返回 new char[0]。* * @param arr* @return*/public static char[] shuffle(char[] arr) {if (arr == null) {return new char[0];}return random(arr, arr.length);}/*** * 随机取出固定数量的元素* 如取出数量大于数组元素数则返回打乱的数组,等同于 {@link #shuffle}* 当 arr 为 null 时返回 new char[0]。* * @param arr* @param count* @return*/public static char[] random(char[] arr, int count) {char[] rarr = new char[0];if (arr != null) {if (arr.length < count) {count = arr.length;}Random random = new Random();int i = 0;int num = 0;rarr = new char[count];int[] keys = new int[count];for (int j = 0; j < keys.length; j++) {keys[j] = 0;}do {num = random.nextInt(arr.length);if (!inArray(keys, num)) {keys[i] = num;rarr[i] = arr[num];i++;}} while (i < count);}return rarr;}/*** * 检查数组中是否存在某个值* * @param arr* @param search* @return*/public static boolean inArray(char[] arr, char search) {if (arr != null) {for (int i = 0; i < arr.length; i++) {if (arr[i] == search) {return true;}}}return false;}/*** * 检查数组中是否存在某几个值* * @param arr* @param search* @return*/public static boolean inArray(char[] arr, char[] search) {if (search != null) {for (int i = 0; i < search.length; i++) {if (!inArray(arr, search[i])) {return false;}}return true;}return false;}/*** * 检查数组中是否存在某个值,并返回其索引键,不存在则返回 -1 。* * @param arr* @param search* @return*/public static int search(char[] arr, char search) {if (arr != null) {for (char i = 0; i < arr.length; i++) {if (arr[i] == search) {return i;}}}return -1;}/*** * 返回一个单元顺序相反的数组* 当 arr 为 null 时返回 new char[0]。* * @param arr* @return*/public static char[] reverse(char[] arr) {char[] rarr = new char[0];if (arr != null) {rarr = new char[arr.length];char j = 0;for (int i = arr.length - 1; i >= 0; i--) {rarr[j++] = arr[i];}}return rarr;}/*** byte array tools* =====================*//*** * 计算数组中的单元数目或对象中的属性个数* 当 arr 为 null 时返回 0。* * @param arr* @return*/public static int sizeOf(byte[] arr) {return arr == null ? 0 : arr.length;}/*** * 合并一个或多个数组* 当 arr 为 null 时返回 new byte[0] 。* * @param arrs* @return*/public static byte[] merge(byte[]... arrs) {byte[] result = new byte[0];if (arrs != null) {byte count = 0;for (byte i = 0; i < arrs.length; i++) {count += arrs[i].length;}result = new byte[count];byte arg;byte k = 0;for (byte i = 0; i < arrs.length; i++) {if (arrs[i] == null) {continue;}for (byte j = 0; j < arrs[i].length; j++) {arg = arrs[i][j];result[k] = arg;k++;}}}return result;}/*** * 计算数组的差集* 注意:* aArr 为null时 返回 bArr(可能为 null)。* bArr 为null时 返回 aArr。* 无差集时返回 new byte[0];* * @param aArr* @param bArr* @return*/public static byte[] diff(byte[] aArr, byte[] bArr) {{if (aArr == null) {return bArr;}if (bArr == null) {return aArr;}}byte[] cArr = new byte[aArr.length + bArr.length];byte idx = 0;/*** 检查 a 中那些元 在 b 中不存在*/for (int i = 0; i < aArr.length; i++) {if (!inArray(bArr, aArr[i])) {cArr[idx++] = aArr[i];}}/*** 检查 b 中那些元 在 a 中不存在*/for (int i = 0; i < bArr.length; i++) {if (!inArray(aArr, bArr[i])) {cArr[idx++] = bArr[i];}}//byte[] dArr = new byte[idx];System.arraycopy(cArr, 0, dArr, 0, dArr.length);return dArr;}/*** * 返回一个数组的全复制* 当 arr 为 null 时返回 new byte[0] 。* * @param arr* @return*/public static byte[] copyOf(byte[] arr) {byte[] carr = new byte[0];if (arr != null) {carr = new byte[arr.length];System.arraycopy(arr, 0, carr, 0, arr.length);}return carr;}/*** * 返回一个数组的复制* 当 arr 为 null 时返回 new byte[0] 。* * @param arr* @param i* @return*/public static byte[] copyOf(byte[] arr, int i) {byte[] carr = new byte[0];if (arr != null) {if (i > arr.length) {i = arr.length;}carr = new byte[i];System.arraycopy(arr, 0, carr, 0, i);}return carr;}/*** * 从数组中随机取出一个或多个单元* 当 arr 为 null 时返回 new byte[0]。* * @param arr* @return*/public static byte[] random(byte[] arr) {if (arr == null) {return new byte[0];}int count = new Random().nextInt(arr.length);count = count > 0 ? count : 1;return random(arr, count);}/*** * 将数组打乱* 当 arr 为 null 时返回 new byte[0]。* * @param arr* @return*/public static byte[] shuffle(byte[] arr) {if (arr == null) {return new byte[0];}return random(arr, arr.length);}/*** * 随机取出固定数量的元素* 如取出数量大于数组元素数则返回打乱的数组,等同于 {@link #shuffle}* 当 arr 为 null 时返回 new byte[0]。* * @param arr* @param count* @return*/public static byte[] random(byte[] arr, int count) {byte[] rarr = new byte[0];if (arr != null) {if (arr.length < count) {count = arr.length;}Random random = new Random();int i = 0;int num = 0;rarr = new byte[count];int[] keys = new int[count];for (int j = 0; j < keys.length; j++) {keys[j] = 0;}do {num = random.nextInt(arr.length);if (!inArray(keys, num)) {keys[i] = num;rarr[i] = arr[num];i++;}} while (i < count);}return rarr;}/*** * 检查数组中是否存在某个值* * @param arr* @param search* @return*/public static boolean inArray(byte[] arr, byte search) {if (arr != null) {for (int i = 0; i < arr.length; i++) {if (arr[i] == search) {return true;}}}return false;}/*** * 检查数组中是否存在某几个值* * @param arr* @param search* @return*/public static boolean inArray(byte[] arr, byte[] search) {if (search != null) {for (int i = 0; i < search.length; i++) {if (!inArray(arr, search[i])) {return false;}}return true;}return false;}/*** * 检查数组中是否存在某个值,并返回其索引键,不存在则返回 -1 。* * @param arr* @param search* @return*/public static int search(byte[] arr, byte search) {if (arr != null) {for (byte i = 0; i < arr.length; i++) {if (arr[i] == search) {return i;}}}return -1;}/*** 返回一个单元顺序相反的数组
* 当 arr 为 null 时返回 new byte[0]。* @param arr* @return*/public static byte[] reverse(byte[] arr) {byte[] rarr = new byte[0];if (arr != null) {rarr = new byte[arr.length];byte j = 0;for (int i = arr.length - 1; i >= 0; i--) {rarr[j++] = arr[i];}}return rarr;}/*** 使用 Byte List填充一个byte array。(转换Byte List为byte array)* @param list * @return 当 list 为 null 时返回 new byte[0]。*/public static byte[] fill(List list) {if (list == null) {return new byte[0];}int size = list.size();byte[] arr = new byte[size];for (int i = 0; i < size; i++) {arr[i] = list.get(i);}return arr;}/*** 使用 byte array填充一个 Byte List。(转换byte array为Byte List)* @param arr* @return 当 arr 为 null 时返回 new ArrayList(size)。*/public static List fill(byte[] arr) {List list = null;if (arr == null) {return new ArrayList(0);}int size = arr.length;list = new ArrayList(size);for (byte by : arr) {list.add(by);}return list;}/*** Object array tools* =====================*//*** * 计算数组中的单元数目或对象中的属性个数* 当 arr 为 null 时返回 0。* * @param arr* @return*/public static int sizeOf(Object[] arr) {return arr == null ? 0 : arr.length;}/*** * 合并一个或多个数组* 当 arr 为 null 时返回 new Object[0]。* * @param arrs* @return*/public static Object[] merge(Object[]... arrs) {Object[] result = new Object[0];if (arrs != null) {int count = 0;for (int i = 0; i < arrs.length; i++) {count += arrs[i].length;}result = new Object[count];Object arg;int k = 0;for (int i = 0; i < arrs.length; i++) {if (arrs[i] == null) {continue;}for (int j = 0; j < arrs[i].length; j++) {arg = arrs[i][j];result[k] = arg;k++;}}}return result;}/*** * 计算数组的差集* 注意:* aArr 为null时 返回 bArr(可能为 null)。* bArr 为null时 返回 aArr。* 无差集时返回 new Object[0];* * @param aArr* @param bArr* @return*/public static Object[] diff(Object[] aArr, Object[] bArr) {{if (aArr == null) {return bArr;}if (bArr == null) {return aArr;}}Object[] cArr = new Object[aArr.length + bArr.length];int idx = 0;/*** 检查 a 中那些元 在 b 中不存在*/for (int i = 0; i < aArr.length; i++) {if (!inArray(bArr, aArr[i])) {cArr[idx++] = aArr[i];}}/*** 检查 b 中那些元 在 a 中不存在*/for (int i = 0; i < bArr.length; i++) {if (!inArray(aArr, bArr[i])) {cArr[idx++] = bArr[i];}}//Object[] dArr = new Object[idx];System.arraycopy(cArr, 0, dArr, 0, dArr.length);return dArr;}/*** * 返回一个数组的全复制* 当 arr 为 null 时返回 new int[0] 。* * @param arr* @return*/public static Object[] copyOf(Object[] arr) {Object[] carr = new Object[0];if (arr != null) {carr = new Object[arr.length];System.arraycopy(arr, 0, carr, 0, arr.length);}return carr;}/*** * 返回一个数组的复制* 当 arr 为 null 时返回 new Object[0] 。* * @param arr* @param i * @return*/public static Object[] copyOf(Object[] arr, int i) {Object[] carr = new Object[0];if (arr != null) {if (i > arr.length) {i = arr.length;}carr = new Object[i];System.arraycopy(arr, 0, carr, 0, i);}return carr;}/*** * 从数组中随机取出一个或多个单元* 当 arr 为 null 时返回 new Object[0]。* * @param arr* @return*/public static Object[] random(Object[] arr) {if (arr == null) {return new Object[0];}int count = new Random().nextInt(arr.length);count = count > 0 ? count : 1;return random(arr, count);}/*** * 将数组打乱* 当 arr 为 null 时返回 new Object[0]。* * @param arr* @return*/public static Object[] shuffle(Object[] arr) {if (arr == null) {return new Object[0];}return random(arr, arr.length);}/*** * 随机取出固定数量的元素* 如取出数量大于数组元素数则返回打乱的数组,等同于 {@link #shuffle}* 当 arr 为 null 时返回 new Object[0]。* * @param arr* @param count* @return*/public static Object[] random(Object[] arr, int count) {Object[] rarr = new Object[0];if (arr != null) {if (arr.length < count) {count = arr.length;}Random random = new Random();int i = 0;int num = 0;rarr = new Object[count];int[] keys = new int[count];for (int j = 0; j < keys.length; j++) {keys[j] = -1;}do {num = random.nextInt(arr.length);if (!inArray(keys, num)) {keys[i] = num;rarr[i] = arr[num];i++;}} while (i < count);}return rarr;}/*** * 检查数组中是否存在某个值* * @param arr* @param search* @return*/public static boolean inArray(Object[] arr, Object search) {if (arr != null && search != null) {for (int i = 0; i < arr.length; i++) {if (search.equals(arr[i])) {return true;}}}return false;}/*** * 检查数组中是否存在某几个值* * @param arr* @param search* @return*/public static boolean inArray(Object[] arr, Object[] search) {if (search != null) {for (int i = 0; i < search.length; i++) {if (!inArray(arr, search[i])) {return false;}}return true;}return false;}/*** * 检查数组中是否存在某个值,并返回其索引键,不存在则返回 -1 。* * @param arr* @param search* @return*/public static int search(Object[] arr, Object search) {if (arr != null && search != null) {for (int i = 0; i < arr.length; i++) {if (search.equals(arr[i])) {return i;}}}return -1;}/*** * 返回一个单元顺序相反的数组* 当 arr 为 null 时返回 new Object[0]。* * @param arr* @return*/public static Object[] reverse(Object[] arr) {Object[] rarr = new Object[0];if (arr != null) {rarr = new Object[arr.length];int j = 0;for (int i = arr.length - 1; i >= 0; i--) {rarr[j++] = arr[i];}}return rarr;}/*** String array tools* =====================*//*** * 计算数组中的单元数目或对象中的属性个数* 当 arr 为 null 时返回 0。* * @param arr* @return*/public static int sizeOf(String[] arr) {return arr == null ? 0 : arr.length;}/*** * 合并一个或多个数组* 当 arr 为 null 时返回 new String[0]。* * @param arrs* @return*/public static String[] merge(String[]... arrs) {String[] result = new String[0];if (arrs != null) {int count = 0;for (int i = 0; i < arrs.length; i++) {count += arrs[i].length;}result = new String[count];String arg;int k = 0;for (int i = 0; i < arrs.length; i++) {if (arrs[i] == null) {continue;}for (int j = 0; j < arrs[i].length; j++) {arg = arrs[i][j];result[k] = arg;k++;}}}return result;}/*** * 计算数组的差集* 注意:* aArr 为null时 返回 bArr(可能为 null)。* bArr 为null时 返回 aArr。* 无差集时返回 new String[0];* * @param aArr* @param bArr* @return*/public static String[] diff(String[] aArr, String[] bArr) {{if (aArr == null) {return bArr;}if (bArr == null) {return aArr;}}String[] cArr = new String[aArr.length + bArr.length];int idx = 0;/*** 检查 a 中那些元 在 b 中不存在*/for (int i = 0; i < aArr.length; i++) {if (!inArray(bArr, aArr[i])) {cArr[idx++] = aArr[i];}}/*** 检查 b 中那些元 在 a 中不存在*/for (int i = 0; i < bArr.length; i++) {if (!inArray(aArr, bArr[i])) {cArr[idx++] = bArr[i];}}//String[] dArr = new String[idx];System.arraycopy(cArr, 0, dArr, 0, dArr.length);return dArr;}/*** * 返回一个数组的全复制* 当 arr 为 null 时返回 new String[0] 。* * @param arr* @return*/public static String[] copyOf(String[] arr) {String[] carr = new String[0];if (arr != null) {carr = new String[arr.length];System.arraycopy(arr, 0, carr, 0, arr.length);}return carr;}/*** * 返回一个数组的复制* 当 arr 为 null 时返回 new String[0] 。* * @param arr* @param i* @return*/public static String[] copyOf(String[] arr, int i) {String[] carr = new String[0];if (arr != null) {if (i > arr.length) {i = arr.length;}carr = new String[i];System.arraycopy(arr, 0, carr, 0, i);}return carr;}/*** * 从数组中随机取出一个或多个单元* 当 arr 为 null 时返回 new String[0] 。* * @param arr* @return*/public static String[] random(String[] arr) {if (arr == null) {return new String[0];}int count = new Random().nextInt(arr.length);count = count > 0 ? count : 1;return random(arr, count);}/*** * 将数组打乱* 当 arr 为 null 时返回 new String[0] 。* * @param arr* @return*/public static String[] shuffle(String[] arr) {if (arr == null) {return new String[0];}return random(arr, arr.length);}/*** * 随机取出固定数量的元素* 如取出数量大于数组元素数则返回打乱的数组,等同于 {@link #shuffle}* 当 arr 为 null 时返回 new String[0] 。* * @param arr* @param count* @return*/public static String[] random(String[] arr, int count) {String[] rarr = new String[0];if (arr != null) {if (arr.length < count) {count = arr.length;}Random random = new Random();int i = 0;int num = 0;rarr = new String[count];int[] keys = new int[count];for (int j = 0; j < keys.length; j++) {keys[j] = -1;}do {num = random.nextInt(arr.length);if (!inArray(keys, num)) {keys[i] = num;rarr[i] = arr[num];i++;}} while (i < count);}return rarr;}/*** * 检查数组中是否存在某个值* * @param arr* @param search* @return*/public static boolean inArray(String[] arr, String search) {if (arr != null && search != null) {for (int i = 0; i < arr.length; i++) {if (search.equals(arr[i])) {return true;}}}return false;}/*** * 检查数组中是否存在某几个值* * @param arr* @param search* @return*/public static boolean inArray(String[] arr, String[] search) {if (search != null) {for (int i = 0; i < search.length; i++) {if (!inArray(arr, search[i])) {return false;}}return true;}return false;}/*** * 检查数组中是否存在某个值,并返回其索引键,不存在则返回 -1 。* * @param arr* @param search* @return*/public static int search(String[] arr, String search) {if (arr != null && search != null) {for (int i = 0; i < arr.length; i++) {if (search.equals(arr[i])) {return i;}}}return -1;}/*** * 返回一个单元顺序相反的数组* 当 arr 为 null 时返回 new String[0] 。* * @param arr* @return*/public static String[] reverse(String[] arr) {String[] rarr = new String[0];if (arr != null) {rarr = new String[arr.length];int j = 0;for (int i = arr.length - 1; i >= 0; i--) {rarr[j++] = arr[i];}}return rarr;}/*** 使用间隔符连接* @param strs* @param sep* @return*/public static String join(String[] strs, String sep) {StringBuilder strBuilder = new StringBuilder();if (strs != null) {for (int i = 0; i < strs.length; i++) {strBuilder.append(strs[i]);if (i < strs.length - 1) {strBuilder.append(sep);}}}return strBuilder.toString();}
}
原文:java数组操作工具类
源代码下载地址:http://www.zuidaima.com/share/1550463350262784.htm
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
