Arrays庫的數組的常用方法
來源:互聯網
上載者:User
1. 數組的查詢:binarySearchString[] strs1 = new String[]{"1","2","3","4"}; int i = Arrays.binarySearch(strs1,"2"); System.out.println(i);2. 數組的覆蓋:fillString[] strs1 = new String[]{"1","2","3","4"}; Arrays.fill(strs1,2,3,"haha"); for(int i=0;i<strs1.length;i++) { System.out.println(strs1[i]); }注意:第一個參數為數組,最後一個參數是覆蓋後的新值,覆蓋的位置為,從第二個參數開始,覆蓋數組項的個數為,第三個參數減去第二個參數。3. 數組的排序:sortString[] strs1 = new String[]{"1","2","6","4"};Arrays.sort(strs1);for(int i=0;i<strs1.length;i++) { System.out.println(strs1[i]); }第六, 資料和其他資料類型的轉化我們經常需要將數組轉化為List、ArrayList等一些資料類型,然後我們又需要將他們轉化回來。將數組轉化為List:String[] strs1 = new String[]{"1","2","6","4"}; List list = Arrays.asList(strs1);將數組轉化為ArrayList:String[] strs1 = new String[]{"1","2","6","4"}; List list = Arrays.asList(strs1); ArrayList al = new ArrayList(); al.addAll(list);將List轉化為數組:String[] strs1 = new String[]{"1","2","6","4"}; List list = Arrays.asList(strs1); String[] strs2 = (String[])list.toArray(new String[0]); for(int i=0;i<strs2.length;i++) { System.out.println(strs1[i]); }第七, 去掉數組中相同的項我們知道,數組的項是可以重複的,有時候我們需要去掉數組中重複的項,怎麼辦?我們也知道,HashSet裡面是沒有重複的項的,我們可不可以將數組轉化為HashSet,然後再轉化回來呢?String[] strs1 = new String[]{"1","2","6","4","2","4"}; HashSet set = new HashSet(); set.addAll(Arrays.asList(strs1)); String[] strs2 = (String[])set.toArray(new String[0]); for(int i=0;i<strs2.length;i++) { System.out.println(strs1[i]); }第八, 數組的複製我們可以將一個數組的一些項複製到另外一個數組裡面去,如:String[] strs1 = new String[]{"1","2","3","4","5","6"}; String[] strs2 = new String[4];System.arraycopy(strs1,2,strs2,0,2); for(int i=0;i<strs2.length;i++) { System.out.println(strs2[i]); }上面的這段代碼是將數組strs1複製到數組strs2裡面去,從strs1的下標為2的項開始複製,複製到strs2下標為0的項開始,一直複製2項。第九, 長度不定的數組如果數組長度只有有限的幾個選擇,可以使用如下的方法:String[] array;if(length.equals(“4”)){ array = new String[4]; ……}else if(length.equals(“9”)){ array = new String[9]; ……}else if(length.equals(“10”)){ array = new String[10]; ……}else array = new String[]{}; 如果不是能有限確定的,則可以利用反射來產生數組,如:try { int length = 10; Class cls = Class.forName( "java.lang.String"); Object arr = Array.newInstance(cls, length); String[] strs = (String[])arr; for(int i=0;i<strs.length;i++) { strs[i] = String.valueOf(i); } for(int i=0;i<strs.length;i++) { System.out.println(strs[i]); } } catch (Throwable e) { System.err.println(e); }