java基礎知識4--數組的經常使用方法(Array)

先說一個idea編輯器的問題,編輯器的光標變成黑色光標沒法移動,按一下insert鍵就行了。編程

數組是線性數據存儲結構、它用犧牲自動擴展大小來換取與集合相比的惟一優點——查詢效率的提高。自己是一種引用類型的數據、因此咱們要使用數組就要首先聲明、初始化他、而它的初始化的完成也就意味着此數組的大小將再也不改變、並且具備初始值。 定義數組必須給定數組的大小。Java中的數組長度不變!存儲的數據類型惟一
 
數組的引用存放在棧內、實際對象存放在堆內存中。
 
經常使用的方法可以下:
1.數組的定義和聲明(必須給定數組大小!!!!!)
/*1.定義數組,必須規定數組的大小,優勢:查詢效率高 */

        // Arrays.fill(數組名,值)主要是將數組中每一個元素賦予相同的值, // 該方法經過各類重載形式可完成任意類型的數組元素的替換
        String[] s1 = new String[4]; Arrays.fill(s1, "wyy"); for (String s : s1 ) { System.out.println(s); }
String s2[]
= {"wyy", "wzz", "wxx"}; System.out.println(Arrays.toString(s2));//注意:直接輸出s2只能獲得數組的地址引用 String[] s3 = new String[]{"zyy", "zxx", "zww"}; System.out.println(Arrays.toString(s3)); //將字符串數組轉化爲字符串 int[] s5 = new int[]{7, 3, 2, 8, 9};

2.將數組轉化爲集合(set,list)數組

(1)轉化爲list編程語言

 /*2.將數組轉化爲ArrayList Arrays.asList(數組) */ List<String> list = new ArrayList<>(Arrays.asList(s2)); list.add("whh"); System.out.println("ArrayList是否包含:" + list.contains("whh"));

(2)轉化爲set編輯器

        Set<String> set = new HashSet<>(Arrays.asList(s2)); System.out.println("集合set是否包含:" + set.contains("wyy"));

(3)整型數組轉化ide

特別注意,將整形數組轉爲集合,必須用原始類型。不能直接將int[]轉化爲集合、由於asList()方法的參數必須是對象。應該先把int[]轉化爲Integer[]。對於其餘原始的類型的數組也是如此,必須先轉換成相應的包裝類類型數組。oop

Java是面向對象的編程語言,也就說一切皆爲對象.但是那些int double 等八種數據類型卻不是對象,這就與Java的一切皆是對象的思想相矛盾了,因此爲了解決這個問題,Java就出現了包裝類,把那些基本數據類型進行包裝,讓它成爲了一個類,等用到的時候直接調用就能夠了..由於集合的類型必須爲對象,因此添加元素類型必須爲原始類idea

public interface Set<E> extends Collection<E> 
       Integer[] integerArray = new Integer[s5.length]; for (int i = 0; i < integerArray.length; i++) { integerArray[i] = s5[i]; } Set<Integer> set1 = new HashSet<>(Arrays.asList(integerArray)); System.out.println(set1); //[2, 3, 7, 8, 9]

3.數組是否包含某個元素    Arrays.toString(s2).contains   轉化爲字符串,而後用contain方法spa

 /*3.數組是否包含某個元素,用Arrays.toString(s2),而後直接用字符串.contain方法*/ System.out.println("字符串是否包含:" + Arrays.toString(s2).contains("wyx"));

4.轉換int值爲字節數組code

 byte[] bytes = ByteBuffer.allocate(4).putInt(90).array(); for (byte t : bytes) { System.out.format("0x%x ", t);  //0x0 0x0 0x0 0x5a
        }

5.延伸:如何查看數組是否包含某個元素orm

方法1:Arrays.toString(s2).contains   轉化爲字符串,而後用contain方法

方法2:先用2,轉化爲集合,而後用contain方法

方法3:自循環

public static boolean Loop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false; }

方法4:Arrays.binarySearch()  ,只能用於有序數組,當數組存儲數據不少時推薦此方法。

能夠經過計算 long time=System.nanoTime() 計算一下時間複雜度。

 public static boolean binarySearch(String[] arr, String targetValue) { int j = Arrays.binarySearch(arr, targetValue); if (j > 0) { return true; } else
            return false; }

6.另外 Apache common lang 包中的ArrayUtils類經常使用來鏈接兩個數組,數組元素移除,反轉 ,用時再說~

 

就醬紫~

相關文章
相關標籤/搜索