java 数组操作大全
2012-01-14 13:34
309 查看
public class ArrayUtil {
/**
* 私有构造方法,防止类的实例化,因为工具类不需要实例化。
*/
private ArrayUtil() {
}
/**
* 得到初始化好的int数组。
*
* @param length 数组长度
* @return 初始化后的int数组,各个元素的值和其索引值相等。
*/
public static int[] getInitedIntArray(int length) {
int[] indexes = new int[length];
for (int i = 0; i < length; i++) {
indexes[i] = i;
}
return indexes;
}
/**
* 得到初始化好的int数组。
*
* @param length 数组长度
* @param value 初始值
* @return 初始化后的int数组,各个元素的值都等于指定的value。
*/
public static int[] getInitedIntArray(int length, int value) {
int[] indexes = new int[length];
for (int i = 0; i < length; i++) {
indexes[i] = value;
}
return indexes;
}
/**
* 得到初始化好的boolean数组。
*
* @param length 数组长度
* @param value 初始值
* @return 初始化后的boolean数组,各个元素的值都等于value。
*/
public static boolean[] getInitedBooleanArray(int length, boolean value) {
boolean[] indexes = new boolean[length];
for (int i = 0; i < length; i++) {
indexes[i] = value;
}
return indexes;
}
/**
* 得到指定的对象在对象数组中的索引。
*
* @param objects 对象数组
* @param object 对象
* @return 对象在对象数组中的位置,不存在于数组中时返回-1
*/
public static int indexOf(Object[] objects, Object object) {
for (int i = 0; i < objects.length; i++) {
if (objects[i].equals(object)) {
return i;
}
}
return -1;
}
/**
* 将原数组的值拷贝到目标数组。
* 目标数组的大小必须大于等于原数组,一般应该是大小相等,如果目标数组的大小较大则大于的部分保留原值。
*
* @param orginalArray 原数组
* @param targetArray 目标数组
*/
public static void copyArrayValue(int[] orginalArray, int[] targetArray) {
for (int i = 0; i < orginalArray.length; i++) {
targetArray[i] = orginalArray[i];
}
}
/**
* 将数组中的值移位。
* 移动的方式是将指定位置以后的每个元素依次往前移动一位,指定位置的值移到最后。
*
* @param array 数组
* @param index 位置
*/
public static void shiftArray(int[] array, int index) {
int temp = array[index];
int length = array.length - 1;
for (int i = index; i < length; i++) {
array[i] = array[i + 1];
}
array[length] = temp;
}
/**
* 打印数组的值。
* 数组前后为一个"["和"]",中间用逗号分隔。
*
* @param array 数组
*/
public static void printArray(int[] array) {
int length = array.length - 1;
StringBuffer buffer = new StringBuffer(length * 5);
buffer.append("[");
for (int i = 0; i < length; i++) {
buffer.append(array[i]);
buffer.append(",");
}
buffer.append(array[length] + "]");
System.out.println(buffer.toString());
}
/**
* 将指定的值插入到数组中的指定位置。
* 数组最后一个元素的值将被丢弃。
*
* @param array
* @param index
* @param value
*/
public static void insertValueToArray(int[] array, int index, int value) {
int length = array.length - 1;
for (int i = length; i > index; i--) {
array[i] = array[i - 1];
}
array[index] = value;
}
/**
* 将数组转换为TreeSet。
*
* @param array 数组
* @return 转换后的TreeSet,如果数组为null则返回null
*/
public static TreeSet arrayToTreeSet(Object[] array) {
if (array != null) {
TreeSet treeSet = new TreeSet();
for (int i = 0; i < array.length; i++) {
treeSet.add(array[i]);
}
return treeSet;
} else {
return null;
}
}
/**
* 判断对像是否在List中
*
* @param oL
* @param obj
* @return
*/
public static boolean objIsInList(List oL, Object obj) {
if (oL == null)
return false;
else if (oL.size() == 0)
return false;
else {
for (int kk = 0; kk < oL.size(); kk++) {
if (oL.get(kk).equals(obj))
return true;
}
}
return false;
}
}
/**
* 私有构造方法,防止类的实例化,因为工具类不需要实例化。
*/
private ArrayUtil() {
}
/**
* 得到初始化好的int数组。
*
* @param length 数组长度
* @return 初始化后的int数组,各个元素的值和其索引值相等。
*/
public static int[] getInitedIntArray(int length) {
int[] indexes = new int[length];
for (int i = 0; i < length; i++) {
indexes[i] = i;
}
return indexes;
}
/**
* 得到初始化好的int数组。
*
* @param length 数组长度
* @param value 初始值
* @return 初始化后的int数组,各个元素的值都等于指定的value。
*/
public static int[] getInitedIntArray(int length, int value) {
int[] indexes = new int[length];
for (int i = 0; i < length; i++) {
indexes[i] = value;
}
return indexes;
}
/**
* 得到初始化好的boolean数组。
*
* @param length 数组长度
* @param value 初始值
* @return 初始化后的boolean数组,各个元素的值都等于value。
*/
public static boolean[] getInitedBooleanArray(int length, boolean value) {
boolean[] indexes = new boolean[length];
for (int i = 0; i < length; i++) {
indexes[i] = value;
}
return indexes;
}
/**
* 得到指定的对象在对象数组中的索引。
*
* @param objects 对象数组
* @param object 对象
* @return 对象在对象数组中的位置,不存在于数组中时返回-1
*/
public static int indexOf(Object[] objects, Object object) {
for (int i = 0; i < objects.length; i++) {
if (objects[i].equals(object)) {
return i;
}
}
return -1;
}
/**
* 将原数组的值拷贝到目标数组。
* 目标数组的大小必须大于等于原数组,一般应该是大小相等,如果目标数组的大小较大则大于的部分保留原值。
*
* @param orginalArray 原数组
* @param targetArray 目标数组
*/
public static void copyArrayValue(int[] orginalArray, int[] targetArray) {
for (int i = 0; i < orginalArray.length; i++) {
targetArray[i] = orginalArray[i];
}
}
/**
* 将数组中的值移位。
* 移动的方式是将指定位置以后的每个元素依次往前移动一位,指定位置的值移到最后。
*
* @param array 数组
* @param index 位置
*/
public static void shiftArray(int[] array, int index) {
int temp = array[index];
int length = array.length - 1;
for (int i = index; i < length; i++) {
array[i] = array[i + 1];
}
array[length] = temp;
}
/**
* 打印数组的值。
* 数组前后为一个"["和"]",中间用逗号分隔。
*
* @param array 数组
*/
public static void printArray(int[] array) {
int length = array.length - 1;
StringBuffer buffer = new StringBuffer(length * 5);
buffer.append("[");
for (int i = 0; i < length; i++) {
buffer.append(array[i]);
buffer.append(",");
}
buffer.append(array[length] + "]");
System.out.println(buffer.toString());
}
/**
* 将指定的值插入到数组中的指定位置。
* 数组最后一个元素的值将被丢弃。
*
* @param array
* @param index
* @param value
*/
public static void insertValueToArray(int[] array, int index, int value) {
int length = array.length - 1;
for (int i = length; i > index; i--) {
array[i] = array[i - 1];
}
array[index] = value;
}
/**
* 将数组转换为TreeSet。
*
* @param array 数组
* @return 转换后的TreeSet,如果数组为null则返回null
*/
public static TreeSet arrayToTreeSet(Object[] array) {
if (array != null) {
TreeSet treeSet = new TreeSet();
for (int i = 0; i < array.length; i++) {
treeSet.add(array[i]);
}
return treeSet;
} else {
return null;
}
}
/**
* 判断对像是否在List中
*
* @param oL
* @param obj
* @return
*/
public static boolean objIsInList(List oL, Object obj) {
if (oL == null)
return false;
else if (oL.size() == 0)
return false;
else {
for (int kk = 0; kk < oL.size(); kk++) {
if (oL.get(kk).equals(obj))
return true;
}
}
return false;
}
}
相关文章推荐
- 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)
- 数组操作大全<Java实现>
- java中数组的基本操作
- java文件读写操作大全
- java文件操作大全
- Java基本文件操作大全
- Java——Arrays类操作数组的工具类
- java操作任意数组
- java之 21天 (二) 操作基本数据类型,字节数组的流 和 字符编码
- Java文件操作源码大全
- JAVA学习笔记一:数组的基本操作
- javascript数组操作大全,数组方法总汇
- JavaScript操作大全整理(思维导图二--数组)
- java 文件操作之byte数组间的转换
- java 数组操作1.5后新特性--可变参数以及foreach使用
- java文件读写操作大全
- Java 对字符以及字符数组的操作
- Java中JNI的使用详解第五篇:C/C++中操作Java中的数组
- javascript数组操作大全,数组方法总汇
- java操作数组的常用类