2013.8.7Java语言基础——数组
生活随笔
收集整理的這篇文章主要介紹了
2013.8.7Java语言基础——数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數組是數據類型一致的變量的集合。
一個:變量
一堆(多個):數組
數組語法:
1)數組變量(引用類型變量)
數組變量通過引用地址引用了數組(數組對象)
2)數組(數組對象)
數組就是個體,是一個整體
數組元素的個數叫數組的長度length
數組元素的范圍:0 1 2…length-1
3)數組元素
是數組中的每個變量,使用[下標]訪問
使用數組非常有用的API方法
(使用API方法:API方法封裝了常用算法功能,使用這些功能簡化開發過程,提高開發效率)
Arrays.toString:用于字符串表示數組元素
1 package TestCode; 2 3 import java.util.Arrays; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 String[] str =new String[]{"A","b","c","d"}; 9 System.out.println(Arrays.toString(str));//打印出數組元素[A, b, c, d] 10 }Arrays.equals:用于比較兩個數組內容是否相等(便捷)
1 package TestCode; 2 3 import java.util.Arrays; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 char[] a1 = new char[]{'a','b','c'}; 9 char[] a2 = new char[]{'a','b','c'}; 10 char[] a3 = new char[]{'a','c','d'}; 11 System.out.println(Arrays.equals(a1, a2));//true 12 System.out.println(Arrays.equals(a1, a3));//false 13 } 14 }Arrays.sort:用于實現數組排序
1 package TestCode; 2 3 import java.util.Arrays; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 char[] a = new char[]{'a','d','f','c','b','g'}; 9 System.out.println(Arrays.toString(a));//[a, d, f, c, b, g] 10 Arrays.sort(a); 11 System.out.println(Arrays.toString(a));//[a, b, c, d, f, g] 12 } 13 }Arrays.binarySearch:用于實現有序數組 的二分法查找
只能查找排序后的數組,不然得到的結果不穩定
1 package TestCode; 2 3 import java.util.Arrays; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 char[] a = new char[]{'a','d','f','c','b','g'}; 9 int index= Arrays.binarySearch(a, 'c'); 10 System.out.println(index);//-2負數找不到 11 Arrays.sort(a); 12 index= Arrays.binarySearch(a, 'c'); 13 System.out.println(index);//在排序后數組的第2位 14 } 15 }?數組的復制
最常見用途:數組的擴容算法
1 package TestCode; 2 3 import java.util.Arrays; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 int[] ary1 = {4,5,6}; 9 int[] ary2 = ary1;//數組變量的賦值,但數組還是同一個。ary1 ary2互相影響 10 ary2[1]++; 11 System.out.println(Arrays.toString(ary1));//[4, 6, 6] 12 System.out.println(Arrays.toString(ary1));//[4, 6, 6] 13 //數組的復制:1)使用for循環實現 2)使用API 14 //將ary1引用數組進行復制 15 int[] ary3 = new int[ary1.length]; 16 for(int i=0;i<ary1.length;i++){ 17 ary3[i] = ary1[i]; 18 } 19 ary3[1]++; 20 System.out.println(Arrays.toString(ary3));//[4, 7, 6] 21 System.out.println(Arrays.toString(ary1));//[4, 6, 6] 22 //使用API System.arraycopy()實現復制,比較早期,用C寫的,性能好 23 int[] ary4 = new int[ary1.length]; 24 //參數:源數組,源數組位置,目標數組,目標數組位置,個數 25 System.arraycopy(ary1, 0, ary4, 0, ary1.length); 26 System.out.println(Arrays.toString(ary1)); 27 System.out.println(Arrays.toString(ary4)); 28 //使用Arrays.copyOf()方法(JDK1.5開始出現),底層就是arraycopy 29 int[] ary5 = Arrays.copyOf(ary1, ary1.length); 30 System.out.println(Arrays.toString(ary1)); 31 System.out.println(Arrays.toString(ary5)); 32 33 } 34 }數組的擴容 與 追加
1) 數組創建以后長度不可改變
2) 利用更換數組的方式實現擴容算法
3) 更換數組時候,利用復制方法保持原數組內容。
?數組擴容是Java API 實現的常用算法!
?
1 package TestCode; 2 3 import java.util.Arrays; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 // 擴容原理:更換新數組 9 String[] playlist = { "song1", "song2" }; 10 System.out.println(Arrays.toString(playlist)); 11 playlist = new String[] { "song1", "song2", "song3" }; 12 System.out.println(Arrays.toString(playlist)); 13 // 擴容:為playlist擴容并追加 新 歌曲 “song4” 14 playlist = Arrays.copyOf(playlist, playlist.length + 1); 15 playlist[playlist.length - 1] = "song4"; 16 System.out.println(Arrays.toString(playlist)); 17 // 1) 復制新數組(增加容量) 18 // 2) 替換原數組 19 String[] newOne = new String[playlist.length + 1]; 20 System.arraycopy(playlist, 0, newOne, 0, playlist.length); 21 playlist = newOne; 22 System.out.println(Arrays.toString(playlist)); 23 } 24 }?
?
?
?
?
?
轉載于:https://www.cnblogs.com/grape/p/3244159.html
總結
以上是生活随笔為你收集整理的2013.8.7Java语言基础——数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京环球影城残疾证免门票吗
- 下一篇: 学好Java开发的关键七步