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

來源:互聯網
上載者:User

標籤:查看   return   boolean   轉化   基礎   而且   添加元素   效率   contains   

先說一個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)整型數組轉化

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

Java是物件導向的程式設計語言,也就說一切皆為對象.可是那些int double 等八種資料類型卻不是對象,這就與Java的一切皆是對象的思想相矛盾了,所以為瞭解決這個問題,Java就出現了封裝類,把那些基礎資料型別 (Elementary Data Type)進行封裝,讓它成為了一個類,等用到的時候直接調用就可以了..因為集合的類型必須為對象,所以添加元素類型必須為原始類

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方法

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

4.轉換int值為位元組數組

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

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

方法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類常用來串連兩個數組,數組元素移除,反轉 ,用時再說~

 

就醬紫~

   

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.