Java一维与二维数组的拷贝与排序
Arrays.sort()
一维数组升序排序
e.g.(demo.java)
1 | import java.util.Arrays; |
output:
1 | 1 |
二维数组按行升序排序
e.g.(demo.java)
1 | import java.util.Arrays; |
output:
1 | 1 3 20 |
二维数组按列升序排序
思路:将数组转置,每行调用Arrays.sort()
,再转置回来
e.g.(demo.java)
1 | import java.util.Arrays; |
output:
1 | 1 0 3 |
Java中的数组
Java中数组的基本性质
- 数组是使用统一名称引用的一组具有相同类型的数据
- Java中的数组属于引用类型(对象),类似C语言中的指针
一维数组的拷贝
e.g.(demo.java)
1 | import java.util.Arrays; |
二维数组的拷贝
二维数组可以看作数组的数组,即,每一个元素都是一个一维数组,因此可以依照上述拷贝一维数组的思想拷贝二维数组
e.g.(demo.java)
1 | import java.util.Arrays; |
output:
1 | arr1[[I@4eec7777, [I@3b07d329, [I@41629346] |
从输出可以看出,arr2和arr1值相等,指向同一块内存空间;arr3复制arr1的数据到另一块内存空间,不受arr1引用的内存空间的数据的改变影响;同时可以看出,arr1是一个特殊的数组,每个元素是一个一维数组
关于浅拷贝与深拷贝
上述的拷贝仅仅局限于数组,事实上对象等也可以拷贝,此处涉及深浅拷贝的区别,读者可以参考以下两篇博客:
一个例题
读者可以在此题中简单应用上述数组知识
This is copyright.