总结一下有关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类中还有很多有用的方法有兴趣的可以看看源代码