Java-數組和集合簡單使用


數組和集合:

1.數組第一種定義方式

int[] counts = {1,2,3,4,5};

2.數組第二種定義方式(先初始化,后賦值)

int[] numbers = new int[3];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[0] = 1000;//在索引范圍以內可以更改

3.數組創建第三種方式

int[] nums = new int[] {1,2,3};
//修改
nums[0] = 1000;
package com.steven.demo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        
        //java的八種數據類型
        //byte int long short -整型
        //float double -浮點型
        //boolean -布爾型
        //char 字符型
        int i = 1000;
        long l = 1000; 
        float f = l;
        System.out.println("Hello, world ~" + l + i + f);
        char c = 'A';
        System.out.println(c);
        char a = 'a';
        char zero = '0';
        System.out.println("a===" + a);
        System.out.println("zero = " + zero);
        
        //1.數組第一種定義方式
        int[] counts = {1,2,3,4,5};
        //獲取數組的第一個值 syso 打印快捷鍵
        System.out.println("數組的第一個值是" + counts[0]);//數組的第一個值是1
        //獲取數組的最后一個值
        int length = counts.length;
        System.out.println("數組的長度是"+length);//數組的長度是5
        System.out.println("數組的最后一個元素" + counts[length-1]);//數組的最后一個元素5

        float[] moneys = {1.5f,2.0f,3.0f};
        char[] cs = {'A','中','1','C'};
        System.out.println("浮點型數組"+moneys[1]);//2.0
        System.out.println("字符型數組"+cs[1]);////2.數組第二種定義方式(先初始化,后賦值)
        //int[] numbers = {};
        //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        //at com.steven.demo.Test.main(Test.java:39)
        int[] numbers = new int[3];
        numbers[0] = 1;
        numbers[1] = 2;
        numbers[2] = 3;
        numbers[0] = 1000;//在索引范圍以內可以更改
        //numbers[3] = 4;//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
        System.out.println("numbers = " + numbers.length);//numbers = 3
        //數組一旦定義長度就不可以更改了
        
        //3.數組如何獲取值-for循環獲取值
       for (int j = 0; j < numbers.length; j++) {
           System.out.println("j==" + j);
           //j==0
           //j==1
           //j==2
       }
       int k = 0;
       for (int b : numbers) {
           System.out.println("numbers["+k+"]"+b);
           k++;
           //numbers[0]1000
           //numbers[1]2
           //numbers[2]3
       }
       //4.數組創建第三種方式
       int[] nums = new int[] {1,2,3};
       //修改
       nums[0] = 1000;
       System.out.println(nums[0]);
       System.out.println(nums.length); 
       
       //5.冒泡排序
       int[] ks = {1,3,34,56,78,33,3,56};
       for (int j = 0; j < ks.length; j++) {
        for (int b = 1; b < ks.length-1; b++) {
            System.out.println(ks[j]+"===="+ks[b]);
        }
        System.out.println("==============");
       }
       
       //6.動態數組
       //java.util.Collection
       //collection接口 --- list接口-- 一個動態數組
       //jdk里面的ArrayList和Vectory是動態數組
       //集合條件元素是調用:add(object);
       List<String> strings = new ArrayList<String>(); //等價於String[] str = new String[100];
       strings.add("1");
       strings.add("2");
       strings.add("3");
       strings.add("4");//添加到這一行:數組的長度編程9
       System.out.println("動態數組"+strings.size() + strings.getClass());//動態數組4class java.util.ArrayList
       //獲取元素的第一個值
       System.out.println("元素的第一個值"+strings.get(0));//元素的第一個值1
       System.out.println("元素的最后一個值"+strings.get(strings.size()-1));//元素的最后一個值4
       //修改
       strings.set(0, "1000");
       System.out.println("元素的第一個值是"+strings.get(0));//元素的第一個值是1000
       //刪除
       strings.remove(2);
       //可以賦值為空嗎?
       strings.set(0, null);
       strings.add(null);
       System.out.println("可以賦值為空嗎?"+strings.get(0));
       //取值
       //a.第一種 for each循環
       for (String string: strings) {
           System.out.println("string = " + string);
           //string = 1000
           //string = 2
           //string = 4
       }
       //b.第二種 for循環
       for (int j = 0; j < strings.size(); j++) {
          System.out.println(strings.get(j));
        }
       //c.第三種 迭代器
       Iterator<String> inerator = strings.iterator();
       while (inerator.hasNext()) {
           System.out.println(inerator.next());
        }
    }    
}
package com.steven.demo;

import java.util.ArrayList;
import java.util.Iterator;//迭代器
import java.util.List;

public class Test {

    public static void main(String[] args) {
        
        //1.數組是一種數據的集合
        //2.數組作為一種引用類型
        //3.數組是一種容器,可以用來存儲其他任意類型的元素
        //4.數組元素的類型可以是基本類型,也可以是引用類型,但同一個數組只能是同一種類型
        //5.數組的長度在在數組創建后就確定了,就無法修改了
        //6.數組分為:一維數組,二維數組,三維數組,多維數組
        
        //一、聲明數組語法
        /*
         1>.數組元素的類型[] 變量名稱
         2>.數組元素的類型 變量名稱[]
         數組元素的類型,可以使java中的任一類型,變量名稱可以是任意合法的標識符
         例:
         int[] a;
         Student[] students;
         在一行中也可以聲明多個數組, 例: int[] a,b,c
         * */
        
        //聲明一個一維數組,用來存儲int類型
        int[] i = {1,2,3};
        //boolean 類型數組
        boolean [] j = {true,false,true,false};
        //String類型數組
        String[] strings = {"Steven","HuSir"};
        //byte數組
        byte[] k = {1,2,3};
        //char數組
        char[] m = {'a','b'};
        //Object數組
       Object object1 = new Object();
       Object object2 = new Object();
       Object[] objects = {object1,object2};
       
       //數組創建兩種方式
       //第一種: 使用new 操作符來創建數組
       //格式為:new 數組元素的數據類型 [數組元素的個數]
       //基本類型的數組和引用類型的數組,必須清楚數組為引用類型,它在堆中分配。
    
       //聲明一個int類型的數組,數組長度為3
       int[] data = new int[3];
       //給數組中的元素賦值,如果不賦值默認為該類型的默認值,如果是int類型就為0;
       //賦值:變量名[下標] 下標從0開始
       data[0] = 1;
       data[1] = 2;
       data[2] = 3;
       for (int i1= 0; i1 < data.length; i1++) {
           System.out.println("下標為:"+i1+"的值為:"+data[i1]);
           //下標為:0的值為:1
           //下標為:1的值為:2
           //下標為:2的值為:3
       }
         
    }    
        
}

數組動態初始化和靜態初始化的選擇:

//什么時候使用動態初始化,什么時候使用靜態初始化?
//1.無論靜態初始化還是動態初始化,最終的內存分布都是一樣的如果在創建數組的時候,知道數組中應該存儲什么數據,這個時候當然采用靜態初始化方式
//2.如果在創建數組時,無法預測到數組中的存儲什么數據,只是先開辟空間,就是用動態初始化的方式進行創建

二維數組和多維數組以及冒泡排序

package com.steven.demo;

public class ArrayTest {
   public static void main(String[] args) {
     
    Student students = new Student();
    //二維數組的聲明和使用
    //二維數組屬於多維數組,什么是多維數組,當數組元素的類型是數組時就成了多維數組
    //二維數組的聲明格式
    //1.數組元素的數據類型[][] 變量名
    //2.數組元素的數據類型 變量名 [][] 
    //其中中括號的個數就是數組的維數
    //3.特殊的一維數組,(這個一維數組中每個元素都是一維數組)
    
    //1.聲明一個二維數組
    int [][] m = new int[2][3];
    //對二維數組賦值
    m[0][0] = 1;
    m[0][1] = 2;
    m[0][2] = 3;
    
    m[1][0] = 4;
    m[1][1] = 5;
    m[1][2] = 6;
    
    //輸出二維數組
    for (int i = 0; i < m.length; i++) {
        for (int j = 0; j < m[i].length; j++) {
            System.out.println("輸出二維數組" + m[i][j]);
        }
    }
    //2.二維數組的動態初始化
    //3個一維數組,每個一維數組中有四個元素
    int[][] a = new int [3][4];
    a[1][2] = 1000;
    //遍歷
    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a[i].length; j++) {
            System.out.println(a[i][j] + " ");
        }
        System.out.print("\n");
    }
     
    //3.多維數組: 當數組元素的類型是數組時就成了多維數組
    
    int[][]n = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
    //循環三次
    for (int i = 0; i < n.length; i++) {
        for (int j = 0; j < n[i].length; j++) {
            System.out.println(n[i][j]+ " ");
        }
        System.out.print("\n");
    }
    
    //4.冒泡排序
    int[] array = {3,1,6,2,5};
    System.out.println("數組的長度為"+array.length);
    //開始排序
    for (int i = array.length-1; i >0; i--) {
        for (int j = 0; j < i; j++) {
            if (array[j] > array[j+1]) {
                //交換位置
                int temp;
                temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
    //遍歷
    for (int i = 0; i < array.length; i++) {
        System.out.println("數組元素為"+array[i]);
    }
    
   }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM