操作Java数组(Array)的10大方法
String[] aArray = new String[5]; //指定了数组的长度,称它为动态定义
String[] bArray = {"a", "b", "c", "d"}; //分配了内存空间,同时初始化了值
String[] cArray = new String[]{"a", "b", "c", "d"}; //同上
2.打印Java数组中的元素(注意引用和值的区别)
int[] intArray = {1,2,3,4,5};
String intArraytoString = Arrays.toString(intArray);
System.out.println(intArray); //intArray is reference value: [[email protected]
System.out.println(intArraytoString); //intArraytoString is the real value: [1, 2, 3, 4, 5]
String[] stringArray = {"a", "b", "c", "d"};
String stringArrayToString = Arrays.toString(stringArray);
System.out.println(stringArray); //reference value
System.out.println(stringArrayToString); //real value
3.从Array中创建ArrayList
String[] stringArray = {"a", "b", "c", "d"};
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
System.out.println(arrayList);
4.将Array转化成Set集合
String[] stringArray = {"a", "b", "c", "d"};
Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
System.out.println(set);
5.检查数组中是否包含某个值
String[] stringArray = {"a", "b", "c", "d"};
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
6.连接两个数组
int[] intArray = {1,2,3,4,5};
int[] intArray2 = {6,7,8,9,10};
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
System.out.println(Arrays.toString(combinedIntArray));
String[] stringArray = {"a", "b", "c", "d"};
String[] stringArray2 = {"e", "f", "g", "h"};
String[] combinedString = (String[]) ArrayUtils.addAll(stringArray, stringArray2);
System.out.println(Arrays.toString(combinedString));
7.将数组中的元素以字符串的形式输出
String[] stringArray = {"a", "b", "c", "d"};
String j = StringUtils.join(stringArray, ", ");
System.out.println(j);
8.从数组中移除一个元素
int[] intArray = {1,2,3,4,5};
int[] removed = ArrayUtils.removeElement(intArray, 4);
System.out.println(Arrays.toString(removed));
String[] stringArray = {"a", "b", "c", "d"};
String[] removed1 = (String[]) ArrayUtils.removeElement(stringArray, "d");
System.out.println(Arrays.toString(removed1));
9.数组翻转
int[] intArray = {1,2,3,4,5};
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
String[] stringArray = {"a", "b", "c", "d"};
ArrayUtils.reverse(stringArray);
System.out.println(Arrays.toString(stringArray));
10.声明一个数据内链
method(new String[]{"a", "b", "c", "d", "e"});
=============【另外补充】====================
1)一般引用变量是在方法栈里面声明和初始化的,而这三个变量所引用的对象是在堆里面进行内存分配的。 对于java而言,堆内存中的对象通常是不允许直接访问的,为了访问堆内存中的对象,只能通过引用变量。
2)使用Arrays数组工具类,对数组进行操作,检索、填充、排序、比较、toString()等
int demo[] = new int[5];
Arrays.fill(demo, 3); //Fill the array 填充
for(int i : demo){ //Iterate the array
System.out.print(i);
}
System.out.println();
int[] demo2 = new int[10];
System.arraycopy(demo, 0, demo2, 5, 5); //Copy the array: 0000033333 复制
for(int i : demo2){
System.out.print(i);
}
System.out.println();
int[] demoA = new int[3]; //comparison of single array 比较一维数组
int[] demoB = new int[3];
Arrays.fill(demoA, 3);
Arrays.fill(demoB, 3);
System.out.println(demoA == demoB); //false
System.out.println(demoA.equals(demoB)); //false
System.out.println(Arrays.equals(demoA, demoB)); //true
System.out.println();
int[][] demoC = {{1,2,3},{2,3,5,6}}; //comparison of multi-array 比较多维数组
int[][] demoD = {{1,2,3},{2,3,5,6}};
System.out.println(demoC == demoD); //false
System.out.println(demoC.equals(demoD)); //false
System.out.println(Arrays.equals(demoC, demoD)); //false
System.out.println(Arrays.deepEquals(demoC, demoD));//true [notice here, deepEquals]
System.out.println();
int[] a3 = {3, 2, 5, 4, 1}; //Sorting the array 排序
System.out.println(Arrays.toString(a3));
Arrays.sort(a3);
System.out.println(Arrays.toString(a3));
int index1 = Arrays.binarySearch(a3, 4); //Find the position of the specific element 检索
int index2 = Arrays.binarySearch(a3, 2);
int index3 = Arrays.binarySearch(a3, 5);
System.out.println(index1 + " " + index2 + " " + index3);
转载于:https://my.oschina.net/lock0818/blog/308731