java基礎(四)陣列
阿新 • • 發佈:2018-11-21
陣列是儲存多個變數的容器(集合)
本章內容是一維陣列的建立和小demo
/*
* 陣列
* 概念:1.陣列是儲存多個變數的容器(集合),且這些變數的資料型別一致
* 2.陣列既可以儲存基本資料型別,也可以儲存引用資料型別
*
* */
public class ArrayDemo {
public static void main(String[] args) {
// demo01();
// demo02();
// demo03();
demo04();
// demo05();
}
//定義一個數組
/*
* 使用陣列前必須先初始化
* 初始化:給陣列元素分配記憶體空間,並賦值
* 動態初始化:只指定陣列長度,由系統為陣列指定初始值
* 靜態初始化:指定每個陣列元素的初始值,由系統決定陣列長度
* */
private static void demo01() {
int[] arr = new int[3]; //動態初始化
// int[] arr2 =new int[1,2,3];
/*
* 通過陣列索引就可以得到陣列的每個值,索引就是編號,從0開始,最大為長度-1
* */
System.out.println(arr); //輸出:[[email protected] 地址值
System.out.println(arr[0]); //輸出第一個數
//給陣列元素賦值
arr[2] = 3;
arr[0] = 1;
System.out.println (arr[2]);
System.out.println(arr[0]);
}
/*
* 將第一個陣列的地址值賦給第三個陣列,通過第三個陣列的名稱 把元素重複賦值
* */
private static void demo02() {
int[] arr = new int[2];
int[] arr2 = new int[2];
int[] arr3 = arr;
arr[0] = 1;
arr[1] = 2;
arr2[0] = 3;
arr2[1] = 4;
arr3[0] = 4;
arr3[1] = 4;
System.out.println (arr[1]);
}
//靜態初始化
private static void demo03() {
int[] arr = {1,2,3};
}
//陣列索引越界:訪問了不存在的索引
private static void demo04() {
int[] arr = {1,2,3};
System.out.println(arr[3]);
}
//引用型別的常量:空常量:null
//給了null,陣列就不再指向堆記憶體,空指標
private static void demo05() {
int[] arr = null;
System.out.println(arr[3]);
}
}
關於陣列的一些demo
import java.util.Scanner;
public class ArrayTest {
public static void main(String[] args) {
// demo01();
// demo02();
// demo03();
// demo04();
int[] arr = {1,2,3};
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(demo05(arr,num));
}
//陣列遍歷
private static void demo01() {
int[] arr = {1,2,3};
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
//陣列求最值
private static void demo02() {
int[] arr = {11,5,3,44};
int max = arr[0];
for(int i=1; i<arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
}
System.out.println(max);
}
//陣列氣泡排序
private static void demo03() {
int[] arr = {11,5,3,15};
for(int i=0; i<arr.length-1; i++){ //外層控制用哪個數排
for(int j=0; j<arr.length-1-i; j++){ //內層控制這個數與誰比大小,比幾次
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int num:arr){
System.out.print(num+" ");
}
}
//陣列元素逆序
private static void demo04() {
int[] arr = {1,2,3,4,5,6,7};
for(int i=0; i<arr.length; i++){
int num = arr.length;
if(i >= num/2){
break;
}
int temp = arr[i];
arr[i] = arr[num-1-i];
arr[num-1-i] = temp;
}
for(int a:arr){
System.out.println(a);
}
}
//基本查詢
public static int demo05(int[] a,int value){
int index = -1; //定義一個索引
for(int i=0; i<a.length; i++){
if(a[i] == value){
index = i;
}
}
return index; //返回
}
}