Java基础知识之数组操作
2017-03-24 14:25
363 查看
1.创建空的数组
2.对数组进行排序
3.提取数组的一部分生成另一个数组
4.合并两个数组,同时使合并的数组不包含重复的元素
使用set集合
5.在数组中使用二分法搜索元素
6.将数组反转
直接将数组元素对换
使用ArrayList
使用Collections和Arrays工具类
//zero是一个长度为0的数组,我们称之为“空数组”。空数组也是一个对象,只是包含元素个数为0。 int[] zero = new int[0]; //nil是一个数组类型的空引用。 int[] nil = null; //假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对放回数组进一步处理。 //而如果返回空数组,则无须null引用检查。
2.对数组进行排序
//sort方法为由小到大,想由大到小将for循环反一下即可,或自己写排序方法 Arrays.sort(int[] array)
3.提取数组的一部分生成另一个数组
int[] A = new int[]{1,5,2,3,7,9,2,4,9,0}; int[] B = new int[6]; System.arraycopy(A, 3, B, 0,5); for (int i = 0; i < B.length; i++) { System.out.print(B[i] + "\t"); } // System.arraycopy(src, srcPos, dest, destPos, length); // src:要拷贝的源数组 // srcPos:要源数组的起始位置,从0算起 // dest:要拷贝 到的目的数组 // destPos:目的数组的起始位置 // length:需要拷贝的长度
4.合并两个数组,同时使合并的数组不包含重复的元素
使用set集合
public static Integer[] combineArray (int[] array1,int[] array2) { // Set不允许重复 Set set = new HashSet<>(); for (int i = 0; i < array1.length; i++) { set.add(array1[i]); } for (int i = 0; i < array2.length; i++) { set.add(array2[i]); } //转换成引用类型数组 Integer[] array = new Integer[set.size()]; return (Integer[])set.toArray(array); }
5.在数组中使用二分法搜索元素
public static int search(int[] array, int key) { //二分法查找需要有序数组,所以先排序 Arrays.sort(array); int start = 0; int end = array.length - 1; while (start <= end) { int middle = (start + end) / 2; if (key < array[middle]) { end = middle - 1; } else if (key > array[middle]) { start = middle + 1; } else { return middle; } } //没有查到则返回 -1 return -1; }
6.将数组反转
直接将数组元素对换
public static String[] inversionArray(String[] array) { String temp = ""; for (int start = 0, end = array.length - 1; start < end; start++, end--) { temp = array[end]; array[end] = array[start]; array[start] = temp; } return array; }
使用ArrayList
public static String[] inversionArray(String[] array) { List<String> list = new ArrayList<>(array.length); for (int i = array.length - 1; i >= 0; i--) { list.add(array[i]); } return list.toArray(array); }
使用Collections和Arrays工具类
public static Boolean inversionArray(Integer[] array) { // 这种方式仅针对引用类型,对于基本类型如: // int[] array2 = new int[]{1,2,3,4,5,6,7,8,9}; // 应该定义或转换成对应的引用类型: // Integer[] array3 = new Integer[] {1,2,3,4,5,6,7,8,9}; Collections.reverse(Arrays.asList(array)); return true; }
相关文章推荐
- java基础知识(二)数组定义
- 黑马程序员_java初级基础知识汇总(常量和变量、语句、函数、数组)
- 黑马程序员 Java基础知识总结-数组
- 【Java学习笔记】基础知识学习4【数组的基本知识】
- Java软件开发基础知识梳理之(11)------Java中的GC操作及相关概念
- java基础知识(三)对象数组
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- 黑马程序员----------java基础知识(4)之数组
- java基础知识4--数组,排序,二分查找
- 黑马程序员--IO流和文件操作--java学习日记8(基础知识)
- 位运算的基础知识点(关联指针、数组的操作)
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
- Java基础之数组的操作
- 【Java学习笔记】基础知识学习5【数组排序,复制】
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- Java:变量的赋值操作(祭奠我那悲催的基础知识)
- 黑马程序员JAVA基础-数组的操作
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
- 黑马程序员----------java基础知识(6)之数组查找和二维数组及其应用
- Java软件开发基础知识梳理之(3)------JDCB操作数据库性能优化策略