昨天刚刚看了list和数组相互转换方法,今天恰好在优化别人代码时遇到,说下今天遇到的状况吧。
java
有一个list的声明:List<Long> list = new ArrayList<Long>(),而后给这个list中添加了一些数据,最终要转换为Integer[] 数组,大概一看以为很容易,直接用:Integer[] contentList= list.toArray(new Integer[list.size()])。数组
看似没问题,因为这段代码处于try catch中,因此也没看到什么异常,最后仔细检查,才发现是在转换时出了问题,问题出在Long不能直接转为Integer!看似很简单的问题,一不当心得花更多的时间来解决,细节决定成败呀,加油加油!ide
如下是转帖的文章,以为挺不错的。原文连接:优化
http://www.csdn.net/article/2013-09-16/2816947-methods-for-java-arrays spa
0. 声明一个数组(Declare an array) .net
String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"a","b","c","d","e"};
1. 在Java中输出一个数组(Print an array in Java)code
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]
2. 从数组中建立数组列表(Create an ArrayList from an array)orm
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]
3. 检查数组中是否包含特定值(Check if an array contains a certain value)element
String[] stringArray = { "a", "b", "c", "d", "e" }; boolean b = Arrays.asList(stringArray).contains("a"); System.out.println(b); // true
4. 链接两个数组( Concatenate two arrays)rem
int[] intArray = { 1, 2, 3, 4, 5 }; int[] intArray2 = { 6, 7, 8, 9, 10 }; // Apache Commons Lang library int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
5. 声明一个数组内链(Declare an array inline )
method(new String[]{"a", "b", "c", "d", "e"});
6. 将数组元素加入到一个独立的字符串中(Joins the elements of the provided array into a single String)
// 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
7. 将数组列表转换成一个数组 (Covnert an ArrayList to an array)
String[] stringArray = { "a", "b", "c", "d", "e" }; ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray)); String[] stringArr = new String[arrayList.size()]; arrayList.toArray(stringArr); for (String s : stringArr) System.out.println(s);
8. 将数组转换成一个集合(Convert an array to a set)
Set<String> set = new HashSet<String>(Arrays.asList(stringArray)); System.out.println(set); //[d, e, b, c, a]
9. 反向数组(Reverse an array)
int[] intArray = { 1, 2, 3, 4, 5 }; ArrayUtils.reverse(intArray); System.out.println(Arrays.toString(intArray)); //[5, 4, 3, 2, 1]
10. 删除数组元素(Remove element of an array)
int[] intArray = { 1, 2, 3, 4, 5 }; int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array System.out.println(Arrays.toString(removed));
One more – convert int to byte array
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array(); for (byte t : bytes) { System.out.format("0x%x ", t); }
英文出自: Programcreek