A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑妞~ 金牌黑马   /  2014-8-28 10:51  /  6678 人查看  /  47 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是精心整理的Java数组操作的10大方法,大部分代码都来自Stack Overflow。

0、定义一个Java数组
  1. String[] aArray = new String[5];
  2. String[] bArray = {"a","b","c", "d", "e"};
  3. String[] cArray = new String[]{"a","b","c","d","e"};
复制代码



第一种是定义了一个数组,并且指定了数组的长度,我们这里称它为动态定义。

第二种和第三种在分配内存空间的同时还初始化了值。

1、打印Java数组中的元素
  1. int[] intArray = { 1, 2, 3, 4, 5 };
  2. String intArrayString = Arrays.toString(intArray);

  3. // print directly will print reference value
  4. System.out.println(intArray);
  5. // [I@7150bd4d

  6. System.out.println(intArrayString);
  7. // [1, 2, 3, 4, 5]
复制代码



这里的重点是说明了Java中数组的引用和值得区别,第三行直接打印intArray,输出的是乱码,因为intArray仅仅是一个地址引用。第4行输出的则是真正的数组值,因为它经过了Arrays.toString()的转化。对Java初学者来说,引用和值仍需重视。

2、从Array中创建ArrayList
  1. String[] stringArray = { "a", "b", "c", "d", "e" };
  2. ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
  3. System.out.println(arrayList);
  4. // [a, b, c, d, e]
复制代码


为什么要将Array转换成ArrayList呢?可能是因为ArrayList是动态链表,我们可以更方便地对ArrayList进行增删改,我们并不需要循环Array将每一个元素加入到ArrayList中,用以上的代码即可简单实现转换。

3、检查数组中是否包含某一个值
  1. String[] stringArray = { "a", "b", "c", "d", "e" };
  2. boolean b = Arrays.asList(stringArray).contains("a");
  3. System.out.println(b);
  4. // true
复制代码



先使用Arrays.asList()将Array转换成List<String>,这样就可以用动态链表的contains函数来判断元素是否包含在链表中。

4、连接两个数组
  1. int[] intArray = { 1, 2, 3, 4, 5 };
  2. int[] intArray2 = { 6, 7, 8, 9, 10 };
  3. // Apache Commons Lang library
  4. int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
复制代码



ArrayUtils是Apache提供的数组处理类库,其addAll方法可以很方便地将两个数组连接成一个数组。

5、声明一个数组内链
  1. method(new String[]{"a", "b", "c", "d", "e"});
复制代码



6、将数组中的元素以字符串的形式输出
  1. // containing the provided list of elements
  2. // Apache common lang
  3. String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
  4. System.out.println(j);
  5. // a, b, c
复制代码



同样利用StringUtils中的join方法,可以将数组中的元素以一个字符串的形式输出。

7、将Array转化成Set集合
  1. Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
  2. System.out.println(set);
  3. //[d, e, b, c, a]
复制代码



在Java中使用Set,可以方便地将需要的类型以集合类型保存在一个变量中,主要应用在显示列表。同样可以先将Array转换成List,然后再将List转换成Set。

8、数组翻转
  1. int[] intArray = { 1, 2, 3, 4, 5 };
  2. ArrayUtils.reverse(intArray);
  3. System.out.println(Arrays.toString(intArray));
  4. //[5, 4, 3, 2, 1]
复制代码



依然用到了万能的ArrayUtils。

9、从数组中移除一个元素
  1. int[] intArray = { 1, 2, 3, 4, 5 };
  2. int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
  3. System.out.println(Arrays.toString(removed));
复制代码



再补充一个:将一个int值转化成byte数组
  1. byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();

  2. for (byte t : bytes) {
  3. System.out.format("0x%x ", t);
  4. }
复制代码




47 个回复

倒序浏览
牛人啊,谢谢分享!

点评

谢谢分享  发表于 2014-8-28 14:46
回复 使用道具 举报
路过、、、、、
回复 使用道具 举报
受教!!!!
回复 使用道具 举报
啊哦,玩转数组
回复 使用道具 举报
学习了啊
回复 使用道具 举报
我是来学习的!
回复 使用道具 举报
看了后,受益匪浅
回复 使用道具 举报
收藏收藏 必须的!
回复 使用道具 举报
这个必须会~
回复 使用道具 举报
灰常实用,拿走了
回复 使用道具 举报
多谢分享,学习了
回复 使用道具 举报
已收藏,很好的总结
回复 使用道具 举报
学习学习,参考参考
回复 使用道具 举报
搜藏一下。。。慢慢摸索。
回复 使用道具 举报
实用,收藏
回复 使用道具 举报
怪物军师 来自手机 中级黑马 2014-12-1 22:25:56
17#
果断收藏
回复 使用道具 举报
怪物军师 来自手机 中级黑马 2014-12-2 23:50:57
18#
收藏一下,慢慢理解
回复 使用道具 举报
:)很好!!!收藏了~
回复 使用道具 举报
很棒,差不多快忘了,看看就想起来了
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马