vxzv 发表于 2014-11-1 17:35:51

Java数组操作的10大方法

本帖最后由 vxzv 于 2014-11-1 17:40 编辑

下面是精心整理的Java数组操作的10大方法,大部分代码都来自Stack Overflow。
0、定义一个Java数组String[] aArray = new String;
String[] bArray = {"a","b","c", "d", "e"};
String[] cArray = new String[]{"a","b","c","d","e"};1、打印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);
// 这里的重点是说明了Java中数组的引用和值得区别,第三行直接打印intArray,输出的是乱码,因为intArray仅仅是一个地址引用。第4行输出的则是真正的数组值,因为它经过了Arrays.toString()的转化。对Java初学者来说,引用和值仍需重视。
2、从Array中创建ArrayList
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
// true先使用Arrays.asList()将Array转换成List<String>,这样就可以用动态链表的contains函数来判断元素是否包含在链表中。
4、连接两个数组
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方法可以很方便地将两个数组连接成一个数组。
5、声明一个数组内链
method(new String[]{"a", "b", "c", "d", "e"});6、将数组中的元素以字符串的形式输出
// 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同样利用StringUtils中的join方法,可以将数组中的元素以一个字符串的形式输出。7、将Array转化成Set集合
Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
System.out.println(set);
//在Java中使用Set,可以方便地将需要的类型以集合类型保存在一个变量中,主要应用在显示列表。同样可以先将Array转换成List,然后再将List转换成Set。8、数组翻转int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//依然用到了万能的ArrayUtils。9、从数组中移除一个元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));再补充一个:将一个int值转化成byte数组
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();

for (byte t : bytes) {
System.out.format("0x%x ", t);
}译文链接:http://www.codeceo.com/article/10-java-array-method.html
英文原文:Top 10 Methods for Java Arrays
翻译作者:码农网 – 小峰

kanon 发表于 2014-11-3 12:00:30

转载的 补充一下 数组的初始化
在Java中定义一个数组的方法有:
Long[] numbers;//一般使用的定义方式,可分为静态和动态两种定义方式,下有说明.
Long   numbers[]; //跟上面用法一致.
Long... numbers;//只能用于函数中形参的定义.
[]Long numbers;//错误的定义方式,没这种写法.

静态定义:
int[] numbers = {1, 2, 3, 4, 5};
动态定义:
int size = 5;
int[] numbers = new int;
for (int i = 0; i < size; i++) {
   numbers = i + 1;
}

int... xx 的形参定义:
public void testArray(int... numbers) {
   for (int i : numbers) {
      //打印传过来的形式参数的所有元素.
      System.out.println(i);
   }
}

JackIO 发表于 2014-11-2 08:53:32

总结很完整,赞一个。

vxzv 发表于 2014-11-2 09:20:25

ReverseFuture 发表于 2014-11-2 08:53
总结很完整,赞一个。

我也觉得很不错,我刚开始学的是c语言,java跟c定义数组不一样,后来我连java定义数组都不会了。。。。

JackIO 发表于 2014-11-4 13:23:39

vxzv 发表于 2014-11-2 09:20
我也觉得很不错,我刚开始学的是c语言,java跟c定义数组不一样,后来我连java定义数组都不会了。。。。 ...

我也是,用java比较少,所以一段时间不用就忘了怎么用了。

vxzv 发表于 2014-11-4 15:56:15

ReverseFuture 发表于 2014-11-4 13:23
我也是,用java比较少,所以一段时间不用就忘了怎么用了。

晕,这个也能忘????

vxzv 发表于 2014-11-4 15:56:44

kanon 发表于 2014-11-3 12:00
转载的 补充一下 数组的初始化
在Java中定义一个数组的方法有:
Long[] numbers;//一般使用的定义方式,可 ...

不错,多谢!!!!!

JackIO 发表于 2014-11-5 21:04:18

vxzv 发表于 2014-11-4 15:56
晕,这个也能忘????

是啊,会跟C++搞混,呵呵,用的不熟。

vxzv 发表于 2014-11-14 20:06:09

ReverseFuture 发表于 2014-11-5 21:04
是啊,会跟C++搞混,呵呵,用的不熟。

这个倒是,我也经常记混,最好的办法是少学点语言:lol

JackIO 发表于 2014-11-15 12:26:47

vxzv 发表于 2014-11-14 20:06
这个倒是,我也经常记混,最好的办法是少学点语言

少学点语言固然有其好处,但是要是能够花费足够的精力,我想学习广度和深度可以兼得的,但目前来看,我还不具备这个能力啊,所以需要继续努力。:lol
页: [1] 2
查看完整版本: Java数组操作的10大方法