1. 程式人生 > >java學習(三)——陣列

java學習(三)——陣列

一維陣列

import java.util.Arrays;
public class ArraysDemo
{
	public static void main(String[] args)
	{
		//1.宣告陣列(只聲明瞭變數a,並沒有將a初始化為一個數組)  等價於 int a[];
		int[] a;

		/*2.宣告並建立陣列
				建立一個數字陣列時,所有的元素都預設初始化為0
				建立一個boolean型陣列時,所有的元素都預設初始化為false
				建立一個char型陣列時,所有的元素都預設初始化為'\0'
				建立一個物件陣列時,所有的元素都預設初始化為null
		*/
int n=4; int[] b=new int[10]; boolean[] c=new boolean[n]; //陣列長度可以是變數 char[] ch=new char[5]; String[] str=new String[5]; float[] d=new float[0]; //允許長度為0:編寫結果為陣列的方法,如果結果為空時使用, for(int i=0;i<b.length;i++) System.out.print(b[i]+" "); System.out.println(); for(int i=0;i<c.length;
i++) System.out.print(c[i]+" "); System.out.println(); for(int i=0;i<ch.length;i++) System.out.print(ch[i]+"_"); System.out.println(); for(int i=0;i<str.length;i++) System.out.print("str["+i+"]="+str[i]+" "); System.out.println(); > 執行結果************************************
** 0 0 0 0 0 0 0 0 false false false false _ _ _ _ _ str[0]=null str[1]=null str[2]=null str[3]=null str[4]=null > ********************************************* //3.建立並初始化陣列 int[] arr1={1,2,3,4,5}; //陣列的大小就是初始值的個數 //4.匿名陣列 arr1=new int[]{5,6,7,8,9,10}; //可以在不建立變數的情況下重新初始化一個數組 //5.陣列的遍歷 //5.1 for迴圈 System.out.print("陣列arr1="); for(int i=0;i<arr1.length;i++) System.out.print(arr1[i]+" "); System.out.println(); /*5.2 foreach迴圈:用來一次處理陣列中的每個元素 for(變數:陣列或實現Iterable介面的類物件) { 語句塊 } */ System.out.print("陣列arr1="); for(int temp:arr1) //temp變數用於暫存集合中的每一個元素 System.out.print(temp+" "); System.out.println(); //5.3 列印陣列的所有值(Arrays類的toString()方法):返回包含陣列中資料元素的字串,這些資料元素被放在括號內,並用逗號分隔 System.out.println("陣列arr1="+Arrays.toString(arr1)); > 執行結果************************************** 陣列arr1=5,6,7,8,9,10 陣列arr1=5,6,7,8,9,10 陣列arr1=[5, 6, 7, 8, 9, 10] > ********************************************* //6.拷貝陣列 //6.1 將一個數組變數拷貝給另一個數組變數 int[] arr2=arr1; //這是arr1和arr2將同時引用同一個陣列 System.out.println("arr1[0]="+arr1[0]); arr2[0]=100; System.out.println("陣列arr2="+Arrays.toString(arr2)); System.out.println("arr1[0]="+arr1[0]); //6.2 將一個數組所有值拷貝到一個新的陣列中(Arrays類的copyOf()方法) //6.2.1 拷貝後的陣列等於原陣列長度 int[] arr3=Arrays.copyOf(arr2,arr2.length); //第二個引數是新陣列的長度 System.out.println("arr2[0]="+arr2[0]); arr3[0]=99; System.out.println("陣列arr3="+Arrays.toString(arr3)); System.out.println("arr2[0]="+arr2[0]); /*6.2.2 Arrays.copuOf()方法常被用來增加(或減少)陣列的大小 如果新陣列的長度比原陣列大,多餘的元素數值型賦值為0,boolean型賦值為false 如果新陣列的長度比原陣列小,只拷貝前面的陣列元素 */ int[] arr4=Arrays.copyOf(arr2,arr2.length*2); System.out.println("陣列arr4="+Arrays.toString(arr4)); int[] arr5=Arrays.copyOf(arr2,arr2.length/2); System.out.println("陣列arr5="+Arrays.toString(arr5)); //6.2.3 Arays.copyOfRange(type[] a,int start,int end):拷貝陣列從下標start(包含這個元素)開始到下標end(不包含這個值)結束的陣列元素、新陣列大小為end-start int[] arr6=Arrays.copyOfRange(arr2,1,3); //第三個引數如果大於arr2的陣列大小,則多餘的陣列元素為0或false System.out.println("陣列arr6="+Arrays.toString(arr6)); > 執行結果************************************* arr1[0]=5; 陣列arr2=[100, 6, 7, 8, 9, 10] arr1[0]=100; arr2[0]=100 陣列arr3=[99, 6, 7, 8, 9, 10] arr2[0]=100 陣列arr4=[100, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0] 陣列arr5=[100, 6, 7] 陣列arr6=[6, 7] > ********************************************* //7.陣列排序(Arrays類中的sort方法):優化的快速排序演算法 int[] ar1={34,66,78,45,8}; Arrays.sort(ar1); System.out.println("陣列ar1="+Arrays.toString(ar1)); > 執行結果************************************** 陣列ar1=[8, 34, 45, 66, 78] > ********************************************* /*8.二分查詢 8.1 static int binarySearch(type[] a,type v) 8.2 static int binarySearch(type[] a,int start,int end,type v) (查詢包含start,不包含end) 返回值:成功返回陣列下標值,否則返回一個負數值r.-r-1是插入v後陣列任然有序的位置 */ int[] ar2={-14,-2,0,3,5,11,17,23,45,55,100}; System.out.println("5的下標為:"+Arrays.binarySearch(ar2,5)); int i=Arrays.binarySearch(ar2,6); if(i<0) System.out.println("沒有找到!"+i); //System.out.println("17的下標為:"+Arrays.binarySearch(ar2,4,10)); //在jdk8中不可用 > 執行結果************************************** 5的下標為:4 沒有找到!-6 > ********************************************* //9.其他方法 //9.1 將陣列的所有資料元素設定為v static void fill(type[] a,type v) float[] ar3={1.2f,3.5f,7.8f,33.4f,56.8f}; Arrays.fill(ar3,1.1f); System.out.println("陣列ar3="+Arrays.toString(ar3)); /*9.2 判斷陣列是否相等 如果兩個陣列大小相同,並且下標相同的元素都對應相等.則返回true,否則返回false static boolean equals(type[] a,type[] b) */ System.out.println("兩個匿名陣列是否相等:"+Arrays.equals(new int[]{1,2,3},new int[]{1,2,3})); > 執行結果************************************** 陣列ar3=[1.1, 1.1, 1.1, 1.1, 1.1] 兩個匿名陣列是否相等:true > ********************************************* } }

多維陣列

java實際上沒有多維陣列,只有一維陣列,二維陣列int a[n][m]實際上是一個包含n個元素的陣列,而每個元素又是由m個int型別構成的陣列

import java.util.Arrays;
public class ArraysDemo
{
	public static void main(String[] args)
	{
		//宣告建立初始化方式和一維陣列類似
		//1. 二維陣列的遍歷
		int[][] a={
			{1,2,3,4},
			{5,6,7,8},
			{9,10,11,12},
		};
			//1.1 foreach方式
		System.out.println("陣列a=");
		for(int[] row: a)
		{
			for(int temp:row)
				System.out.print(temp+" ");
			System.out.println();
		}	
			//快速的列印一個二維陣列的資料元素列表 Arrays.deepToString()方法
		System.out.println("陣列a="+Arrays.deepToString(a));


		//2.不規則陣列:陣列的每一行都有不同的長度
			//2.1 構造一個不規則陣列
		int[][] arr1=new int[5][];	//該二維陣列含有5行
		for(int i=0;i<arr1.length;i++)
		{
			arr1[i]=new int[i+1];
		}
		for(int i=0;i<arr1.length;i++)
		{
			for(int j=0;j<arr1[i].length;j++)
				System.out.print(arr1[i][j]+" ");
			System.out.println();
		}
		for(int[] i:arr1)
		{
			for(int j:i)
				System.out.print(j+
            
           

相關推薦

java學習()——陣列

一維陣列 import java.util.Arrays; public class ArraysDemo { public static void main(String[] args) { //1.宣告陣列(只聲明瞭變數a,並沒有將a初始化為一個數組

java學習() eclipse_jsp學習

bin文件 5.1 font aaa spa mac war bin log 1.首先打開eclipse,新建一個Dynamac web project項目文件 2.在WebContent單擊右鍵創建JSP File 3. 4.簡單的jsp代碼 運行結果:

java學習內部類

view 靜態變量 每一個 對象 你在 left align don 使用方法 //外部類HelloWorldpublic class HelloWorld { // 內部類Inner,類Inner在類HelloWorld的內部 public class

java學習陣列

1 陣列的定義 在Java中,可以使用以下格式來定義一個數組。如下 資料型別[] 陣列名 = new 資料型別[元素個數或陣列長度]; int[] x = new int[100]; 上述語句就相當於在記憶體中定義了100個int型別的變數,第一個變數的名稱為x[0],第二個變數的名稱為x[1],以此

java學習陣列排序-選擇排序

package Day004; public class arrayDemo { public static void main(String [] args) { System.out.println("跟陣列有關的demo"); int [] arrs =

java基礎()陣列

從陣列開始,java就開始和c變得不一樣了,java裡定義一個數組是這樣的: 動態初始化 int arr = new int[3]; 靜態初始化 int arr = new int[]{1,2,3}; 這裡先提一下棧和堆的概念 棧----存放區域

前端開發需要學什麼?java學習不要!

關於Java學習,也許大家聽得最多的是Java培訓哪個機構好?建議你要如何學習,今天IT君將逆向而行,跟你說一說Java培訓中的“三不要”。 1.不要偷懶 俗話說的好,勤能補拙。這話放到Java培訓中非常適用,眾所周知,專業的Java培訓都是高強度的培訓,想要吸

JAVA學習()__c標籤 if else c標籤 總結

JSTL標籤用法 關鍵字:JSTL標籤、<c:choose>、<c:forEach>、<c:forTokens>、<c:if>、<c:import>、<c:otherwise>、<c:out&

【演算法學習】求兩陣列求差數(Java重境界)

【題目描述】:兩個陣列,一個A陣列200個,,另一個B陣列199個,兩個陣列亂序,但是差一個數,,,找出差的是那個數。 一。境界1(60分) 【1】遍歷A陣列,對每個數執行【2】操作 【2】遍歷B陣列對比是否存在此數。 參考程式碼如下: /**

Java學習)JSP學習1

rtm 斷開 三大指令 保持 web應用 對比 c語言 let 新建 一、 理解JSP技術   JSP全名為Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它 是由Sun Microsystems公司倡導、許多公司參

java學習)類

con void pub oid 修改密碼 tro int str 用戶 類 public class Dog{ String breed; int age; String color; void barking(){ } void hungr

JAVA學習筆記(

byte repl efi ber 時間 clas 區分大小寫 增強for size @SuppressWarnings("resource")是用來壓制資源泄露警告的。比如使用io類,最後沒有關閉。Set集合特點:1)無序,不隨機2)元素唯一3)沒下標註意:Collect

Java學習記錄(補充:面向對象的封裝和繼承)

-1 div 方法名 工程師 over println 補充 else time 面向對象的封裝package day7; //面向對象的封裝 public class Employee { String name = "zhangsan"; privat

201671010117 2016-2017-2 《Java程序設計》Java學習心得

處理方法 心得 新的 自定義 核心 一個 通過 設計 類型

JAVA學習篇Boolean

pri bsp public sta dem 輸入一個數 比較 ati n) Boolean是布爾值。 布爾值只有兩個值:真和假。寫作:true false。 那麽如何使用呢? 最簡單的用法: public class demo{ public static void

Java學習筆記---unable to launch

world 學習筆記 .com image 新工程 hello unable sta ava 環境配置好後,在eclipse下編寫HelloWorld程序: ①創建新工程 ②創建.java文件,命名為HelloWorld ③在源文件中添加main方法,代碼如下: p

Java學習)面向對象之封裝

所有 成對 main 將不 同時 執行順序 編譯失敗 sta sin 封 裝(面向對象特征之一):是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。 好處:將變化隔離;便於使用;提高重用性;安全性。 封裝原則:將不需要對外提供的內容都隱藏起來,把屬性都隱藏,提供公共方法

java筆記學習

學習筆記學習代碼記錄/** * 隨機生成指定長度的字符串 * * @param * @param lengthOfString * @return 純字母字符串 */ public static String getRndStrByLen(int lengthOfString) { int i

Java學習筆記29(集合框架:泛型)

出了 oar sta package 獲取 demo 強制 lis oid 泛型的概念: 簡單地講,就是同一個方法(類),可以接受不同的數據類型並運行得到相對應的結果,不會出現安全問題 上一篇有一段這樣的代碼: 沒有定義集合類型、叠代器類型 package demo;

java虛擬機學習()

() 分享 一個地方 對象實例 tails 描述 不可達 問題 循環引用   垃圾收集器在對堆進行回收前,首先要做的事情就是要確定這些對象之中哪些還“存活”著, 哪些已經“死去" (即不可能再被任何途徑使用的對象)。 一、引用計數算法   給每個對象中添加一個引用計數器,每