总结一下有关Java数组经常用到的方法
1、定义一个数组
String[] aArray = new String[5];
String[] bArray = {"a", "b", "c", "d", "e"};
String[] cArray = new String[]{"a", "b", "c", "d", "e"};第一种是定义一个数组,并指定数组的长度,我们这里称它为动态定义.
第二和第三种在分配内存的时候同时进行了初始化.
3、打印Java数组中的元素
int[] intArray = { 1, 2, 3, 4, 5 };
String intArrayString = Arrays.toString(intArray);
// print directly will print reference value
System.out.println(intArray);
// [I@7150bd4d
System.out.println(intArrayString);
// [1, 2, 3, 4, 5]这里重点说明了Java数组值和引用的区别,第三行代码直接打印intArray输出的是乱码,因为intArray仅仅是一个引用地址,第四行代码输出的是真正的数组值,因为它经过了Arrays.toString()的转化.
3、从Array中创建ArrayList
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
System.out.println(arrayList);
// [a, b, c, d, e]什么要将Array转换为ArrayList呢?可能因为ArrayList是动态链表吧,我们可以更方便的对ArrayList进行增删改,我们并不需要循环Array将每一个元素添加到ArrayList里,用以上的代码就可以进行转换.
4、检查数组中是否包含某一个元素
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
// true先通过Arrays.asList()方法将Array转化为ArrayList<String>,然后可以通过contains()方法判断元素是否包含在链表中.
5、连接两个数组
int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);ArrayUtils是Apache提供的数组处理类库,其addAll()方法可以很方便的将两个数组连接成一个数组.
6、声明一个数组内链
method(new String[]{"a", "b", "c", "d", "e"});7、将数组中的元素以字符串的形式输出
// containing the provided list of elements
// Apache common lang
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
System.out.println(j);
// a, b, c同样利用StringUtil中的join()方法,可以将数组中的元素以字符串的形式输出.
8、将Array转化成Set集合
Set<String> set = new HashSet<String>(Arrays.asList(stringArray)); System.out.println(set); //[d, e, b, c, a]
在Java中使用Set,可以方便的将需要的类型以集合类型保存在一个变量中,主要应用在显示列表.同样可以先将Array转化为List,然后将List转化为Set.
9、数组逆置
int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//[5, 4, 3, 2, 1]同样用到强大的ArrayUtils.
10、从数组中移除一个元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));11、将一个int值转化为Byte数组
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
for (byte t : bytes) {
System.out.format("0x%x ", t);
}12、复制数组
int[] intArray1 = {1,2,3,4,5};
int[] intArray2 = new int[5];
System.arrayCopy(intArray1, 0, intArray2, 0, intArray2.length);第一个参数是源字符串,第二个参数代表着从源数组的哪一个位置开始复制,第三个参数是目的数组,第四个参数代表着在目的数组中放置复制内容的起始位置,第五个参数代表着复制内容的长度.
13、对数组进行排序
double[] num = {1.0, 5.2, 3.7, 2.9, 4.2};
java.util.Arrays.sort(num);Arrays类中还有很多有用的方法有兴趣的可以看看源代码
未经允许请勿转载:程序喵 » Java数组操作的13种方法
程序喵