Java数组操作的13种方法

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

赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏