Java数组操作的10大方法

0、定义一个Java数组

1String[] aArray = new String[5]; 2String[] bArray = {"a","b","c", "d", "e"}; 3String[] cArray = new String[]{"a","b","c","d","e"};

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

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

1、打印Java数组中的元素

1int[] intArray = { 1, 2, 3, 4, 5 }; 2String intArrayString = Arrays.toString(intArray); 3 4// print directly will print reference value 5System.out.println(intArray); 6// [I@7150bd4d 7 8System.out.println(intArrayString); 9// [1, 2, 3, 4, 5]

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

2、从Array中创建ArrayList

1String[] stringArray = { "a", "b", "c", "d", "e" }; 2ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray)); 3System.out.println(arrayList); 4// [a, b, c, d, e]

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

3、检查数组中是否包含某一个值

1String[] stringArray = { "a", "b", "c", "d", "e" }; 2boolean b = Arrays.asList(stringArray).contains("a"); 3System.out.println(b); 4// true

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

4、连接两个数组

1int[] intArray = { 1, 2, 3, 4, 5 }; 2int[] intArray2 = { 6, 7, 8, 9, 10 }; 3// Apache Commons Lang library 4int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);

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

5、声明一个数组内链

method(new String[]{"a", "b", "c", "d", "e"});

6、将数组中的元素以字符串的形式输出

1// containing the provided list of elements 2// Apache common lang 3String j = StringUtils.join(new String[] { "a", "b", "c" }, ", "); 4System.out.println(j); 5// a, b, c

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

7、将Array转化成Set集合

1Set<String> set = new HashSet<String>(Arrays.asList(stringArray)); 2System.out.println(set); 3//[d, e, b, c, a]

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

8、数组翻转

1int[] intArray = { 1, 2, 3, 4, 5 }; 2ArrayUtils.reverse(intArray); 3System.out.println(Arrays.toString(intArray)); 4//[5, 4, 3, 2, 1]

依然用到了万能的ArrayUtils。

9、从数组中移除一个元素

1int[] intArray = { 1, 2, 3, 4, 5 }; 2int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array 3System.out.println(Arrays.toString(removed));

再补充一个:将一个int值转化成byte数组

1byte[] bytes = ByteBuffer.allocate(4).putInt(8).array(); 2 3for (byte t : bytes) { 4System.out.format("0x%x ", t); 5}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Java开发者容易犯的十个错误

!(https://oscimg.oschina.net/oscnet/c9f00cc918684fbe8a865119d104090b.gif)Top1.数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:\java\List<StringlistArrays.asList(arr);Arr

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid

Java数组操作的10大方法 - HelloWorld