Java 数组常用方法
ErinG93
8年前
<h3><strong>数组的定义方法</strong></h3> <p>首先看一维数组的定义方法:</p> <p>数组的静态声明法</p> <pre> <code class="language-java">int arr [] = {5,2,7,9,0}; // [] 写在前后都行,风格统一即可 int[] arr = {5,2,7,9,0}; //可用foreach输出 for (int x: arr) { System.out.println(x); // 2 4 6 8 10 }</code></pre> <p>数组的动态声明法</p> <pre> <code class="language-java">//和创建对象没有关系 //创建对象new后面是() int[] arr= new int[10]; char[] arrChar = new char[10];</code></pre> <p>声明之后,默认值,int数组是0,char数组是空字符,boolean数组是false。</p> <p>二维数组也是类似的。</p> <p>二维数组,就是数组之中的元素,还是数组。</p> <pre> <code class="language-java">//静态声明法 int[][] arr = {{1,2,3},{4,5,6},{7,8}}; //动态声明法 int[][] arr1 = new int[3][5]; //输出时要用两层循环来取 for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length; j++) { System.out.println(arr[i][j]); } }</code></pre> <h3><strong>数组的类型</strong></h3> <ul> <li>数组的类型不是数组中元素的类型,不要混淆。比如arr是 <strong>整形数组</strong> 类型,不是整形变量 。</li> <li>只要保证数组中存放的元素类型是一致的就行。int,double,char,对象,数组,都可以存在数组里。<br> <strong>注意</strong> :数组一旦被声明,长度就不可改变了!!</li> </ul> <h3><strong>数组的操作方法</strong></h3> <p>Arrays类的静态方法很好用,需要import java.utils.Arrays</p> <p>1、 Array.fill() 填充数组</p> <pre> <code class="language-java">// void fill(int[] a, int val)全部填充 // void fill(int[] a, int fromIndex, int toIndex, int val)填充指定索引的元素 Arrays.fill(arr3, 10); Arrays.fill(arr3, 1, 3, 8);</code></pre> <p>2、Arrays.sort() 对数组排序</p> <pre> <code class="language-java">//void sort(int[] a)全部排序 //void sort(int[] a, int fromIndex, int toIndex)排序指定索引的元素 Arrays.sort(arr4); Arrays.sort(arr5, 0, 5);</code></pre> <p>3、Arrays.copyOf() 复制数组</p> <p>```</p> <p>// int copyOf(int[] original, int newLength)复制数组,指定新数组长度</p> <p>// int[] copyOfRange(int[] original, int from, int to)复制数组,指定所复制的原数组的索引</p> <p>int[] arr6 = Arrays.copyOf(arr5, 10);</p> <p>int[] arr7 = Arrays.copyOfRange(arr5, 3, 9);</p> <pre> <code class="language-java">4、检查数组中是否包含某一个值</code></pre> <p>// 先使用Arrays.asList()将Array转换成List<String>,</p> <p>//再用动态链表的contains方法判断元素是否包含在链表中。</p> <p>String stringArray [] = {"a","b","c","d"};</p> <p>boolean b = Arrays.asList(stringArray).contains("c");</p> <pre> <code class="language-java">5、连接两个数组</code></pre> <p>int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);</p> <pre> <code class="language-java">6、数组翻转</code></pre> <p>ArrayUtils.reverse(intArray);</p> <pre> <code class="language-java">7、从数组移除一个元素</code></pre> <p>int[] removed = ArrayUtils.removeElement(intArray, 3);</p> <p>```</p> <p> </p> <p>来自:http://www.jianshu.com/p/e0d3d8c89824</p> <p> </p>