总结放前面:Java中尽量避免使用数组,除非有性能方面的考虑。
1. 数组特点 :尺寸不可变、通过整型索引访问他们的元素、能保存基本类型、对象类型保存的是引用。
2. 数组打印
Object[] obj = new Object[100];
//TODO--初始化数组--
System.out.println(Arrays.toString(obj));
3. ArrayList和数组
List<Integer> intList = new ArrayList<Integer>(Arrays.asList(0,1,2,3,4,5));
String[] sArray = (String[])new ArrayList<String>().toArray();
4.多维数组&粗糙数组&矩阵中的向量任意长度 (以下语句编译和运行可以通过)
int[][][] intArray = new int[10][][];
5. 多维数组打印
Arrays.deepToString(yourArray)
6. 自动包装对数组同样生效
Integer[] a = {1,2,3,4,5};
7. 数组与泛型,没看懂,不建议使用......
8. Arrays.fill() 方法只能用同一个值填充每个位置,针对对象,就是复制同一个引用进行填充。
9. 数组复制 :System.arraycopy().
比for循环要高效。
基本类型复制值,对象类型复制引用。
必须有确切的类型,不会自动包装或拆包。
10. 数组的比较 :Arrays.equals(),元素个数必须相等。
基本类型:使用基本类型的包装类比较如:int类型使用Integer.equals()。
对象类型:使用对象自身的equals()比较。
11. 数组元素的比较......欠奉
12. 数组的排序 :Java对基本类型的排序进行了优化,无需担心性能问题。
String[] sa = { "c", "a", "b", "0" };
Arrays.sort(sa);
System.out.println(Arrays.toString(sa));
Arrays.sort(sa, Collections.reverseOrder());
System.out.println(Arrays.toString(sa));
Arrays.sort(sa, String.CASE_INSENSITIVE_ORDER);
System.out.println(Arrays.toString(sa));
13. 在已排序数组中查找 Arrays.binarySearch(),需要注意对未排序的数组使用该方法会产生不可预料的结果。值得开心的是这个查找也是被优化过的高效方法。
总结:尽量不要使用数组,谢谢阅读。