Java数组
目录
1.一维数组的创建和使用1.1 创建一维数组
//第一种声明方式 type arrayname[]; //第二种声明方式 type [] arrayname; //内存分配 arrayname = new type[arraylength];
type arrayname[] = new type[arraylength]; 1.2 初始化一维数组//第一种初始化方式 type arrayname[] = new type[]{elem1,elem2,elem3,...}; //第二种初始化方式 type arrayname[] = {elem1,...}; 1.3 使用一维数组//使用一维数组输出1~12月的天数 public class GetDay { public static void main(String [] args){ int [] day = new int[]{31,28,31,30,31}; //使用for循环 for (int i = 0; i < day.length; i++){ System.out.println((i+1)+"月有"+day[i]+"天"); } //使用foreach语句 int i = 0; for (int e: day){ System.out.println((i+1)+"月有"+day[i]+"天"); i++; } } } 2. 二维数组的创建和使用2.1 二维数组的创建
//第一种声明方式 type arrayname[][]; //第二种声明方式 type [][] arrayname; //(1)直接为每一维分配内存空间 arrayname = new type[row][line]; //(2)分别为每一维分配内存空间 arrayname = new type[row][]; arrayname[0] = new type[line1]; arrayname[1] = new type[line2]; ……
type arrayname[][] = new type[row][line]; 2.2 二维数组的初始化type arrayname[][] = {{value1,...},{value2,..},...}; type arrayname[][] = ne w type[][]{{value1,...}; 3. 数组基本操作的方法3.1 遍历数组e.g: /** * 遍历二维数组 */ int c[][] = new int[][]{{1},{2,3},{4,5,6}}; //使用双重for循环 for (int i = 0; i < c.length; i++){ for (int j = 0; j < c[i].length; j++){ System.out.print(c[i][j]+" "); } System.out.println(); } System.out.println(); //使用foreach语句 for (int x[]: c){ for (int e: x){ System.out.print(e+" "); } System.out.println(); } } 3.2 填充替换数组元素数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素的替换。fill()方法有两种参数类型。
import java.util.Arrays; //导入java.util.Arrays类 public class Swap { public static void main(String [] args){ int arr[] = new int[]{1,2,3,4,6}; int j = 0; //原样输出 for (int x : arr){ System.out.println(j+":"+x); j++; } System.out.println(); //使用fill(int []a,int value)进行替换 Arrays.fill(arr,6); //替换后输出 for (int i = 0; i < arr.length; i++){ System.out.println(i+":"+arr[i]); } } }
3.3 对数组进行排序Arrays.sort(object)
import java.util.Arrays; public class Taxis { public static void main(String [] args){ int[] arr = new int[]{1,9,8,7,2}; String [] s = new String[]{"1","A","a","B"}; //对int型数组排序 Arrays.sort(arr); //对String型数组排序 Arrays.sort(s); System.out.println(); for (int e : arr){ System.out.print(e+" "); } System.out.println(); for (String e : s){ System.out.print(e+" "); } } }
3.4 复制数组
import java.util.Arrays; public class Copy { public static void main(String [] args){ int arr[] = new int[]{1,5}; int newarr1[] = Arrays.copyOf(arr,6); for (int e : newarr1){ System.out.print(e+" "); } } } //结果:1,0
import java.util.Arrays; public class Copy { public static void main(String [] args){ int arr[] = new int[]{1,5}; int arr3[] = Arrays.copyOfRange(arr,4); for (int i = 0; i < arr3.length; i++){ System.out.print(arr3[i]+" "); } } } //结果:1,2,3,4 3.5 数组查询
import java.util.Arrays; public class BinarySerach { public static void main(String [] args){ String [] str = new String[]{"ab","cd","ef","gh"}; Arrays.sort(str); int index1 = Arrays.binarySearch(str,"cd"); System.out.println("cd的索引位置是:"+index1);//1 } } 4. 数组排序算法4.1 冒泡排序
public class BubbleSort { public void sort(int [] a){ for (int i = 1; i < a.length; i++){ for (int j = 0; j < a.length-i; j++){ if (a[j] > a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } showArray(a); } public void showArray(int [] a){ for (int i = 0; i < a.length; i++){ System.out.print(a[i]+" "); } } public static void main(String [] args){ BubbleSort soter = new BubbleSort(); int [] arr = new int[]{1,6,9}; soter.sort(arr); } } 4.2 选择排序
public class SelectSort{ //从后往前排序 public void sort(int [] a){ for (int i = 1; i < a.length; i++){ int minid = 0; for (int j = 1; j <= a.length-i; j++){ if (a[minid] > a[j]){ minid = j; } } int temp = a[minid]; a[minid] = a[a.length-i]; a[a.length-i] = temp; } showArray(a); } //从前往后排序 public void sort_2(int [] a){ for (int i = 0; i < a.length-1; i++){ int minid = i; for (int j = i+1; j < a.length; j++){ if (a[minid] > a[j]){ minid = j; } } if (minid != i){ int temp = a[minid]; a[minid] = a[i]; a[i] = temp; } } showArray(a); } public void showArray(int [] a){ for (int e: a){ System.out.print(e+" "); } } public static void main(String[] args) { SelectSort sorter = new SelectSort(); int [] arr = {1,7}; sorter.sort_2(arr); } } 4.3 反转排序
public class ReverseSort { public static void main(String[] args) { int [] arr = {10,20,40,50,60,70,80}; ReverseSort sorter = new ReverseSort(); sorter.showArray(arr); sorter.sort(arr); sorter.showArray(arr); } /** * 反转排序 * @param array * 要排序的数组 */ public void sort(int [] array){ int len = array.length; for (int i = 0; i < len/2; i++){ int temp = array[i]; array[i] = array[len-i-1]; array[len-i-1] = temp; } } /** * 显示数组中的元素 * @param array * 要显示的数组 */ public void showArray(int [] array){ for (int e: array){ System.out.print(e+" "); } System.out.println(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |