陣列
相同型別的有序集合
通過陣列的下標來訪問其中的元素
datatype [] arrayRefVar ={a,b,c,d,e}
陣列的特性:
- 陣列在創建時長度就已經確定,不可改變
- 陣列內必須是相同型別
- 陣列元素可以是任何資料型別,包括基本型別和參考型別
- 陣列本身也是參考型別,也可以看做是一個物件,其中元素是物件中的成員變數,陣列本身是在堆中的,
靜態初始化
int[] nums = {1,2,3,4,5};
動態初始化
int[] nums = new int[5];
此時所有元素默認初始化為0或者null等,
nums[0]=10;
package method;
public class Demo6 {
public static void main(String[] args) {
//輸出一個反轉陣列
int[] arrays = {1,2,3,4,5};
Demo6 demo6 = new Demo6();
demo6.printArray(reverse(reverse(arrays)));
}
public static int[] reverse(int[] arrays){ //陣列入參
int[] result = new int[arrays.length];
for (int i = 0; i < arrays.length; i++) {
result[arrays.length-1-i] = arrays[i];
}
return result; //陣列作回傳值
}
public void printArray(int []arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]+" ");
}
}
}
pop排序
兩層回圈,外層冒泡輪數,里層一次比較,時間復雜度為O(n2),
package array;
import java.util.Arrays;
public class poparrays {
public static void main(String[] args) {
int[] array = {1,4,4,99,2,3,4,6,1,5,2,3};
int [] a= sort(array);
System.out.println(Arrays.toString(a));
}
public static int[] sort(int[] array){
//外層判斷走多少次
for (int i = 0; i < array.length-1; i++) {
boolean flag = false;
//內層回圈判斷相鄰兩個數的大小并交換位置,
for (int j = 0; j < array.length-1; j++) {
if (array[j]< array[j+1]){
int temp = array[j];
array[j] =array[j+1];
array[j+1] = temp;
flag = true;
}
}//優化,如果該次回圈內沒有進行交換,則說明排序已完成,終止回圈,
if(flag ==false){
break;
}
}
return array;
}
}
稀疏陣列
package array;
import java.util.Arrays;
public class spraseArray {
public static void main(String[] args) {
int[][] sprasearrays = new int [11][11];
sprasearrays[1][2] = 1;
sprasearrays[2][3] = 2;
for (int[] ints: sprasearrays) {
for (int anInt: ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
int row = sprasearrays.length;
int column = sprasearrays[1].length;
sprase(sprasearrays);
}
public static void sprase(int[][] a){
int sum = 0;
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (a[i][j]!=0){
sum++;
}
}
}
System.out.println("有效值個數為:"+sum);
int[][] array = new int [sum+1][3];
array[0][0] =11;
array[0][1] = 11;
array[0][2] =sum;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if(a[i][j]!=0){
count++;
array[count][0] =i;
array[count][1] =j;
array[count][2] =a[i][j];
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i][0]+"\t" +array[i][1]+"\t" +array[i][2]+"\t");
}
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273306.html
標籤:其他
上一篇:空域的平滑
下一篇:水波仿真
