操作Java数组(Array)的10大方法

1.定义一个Java数组
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: [I@6e3e6e3e
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而言,堆内存中的对象通常是不允许直接访问的,为了访问堆内存中的对象,只能通过引用变量。

174618_U00e_946039.jpg


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值