数组使用技巧

参考:http://www.runoob.com/java/java-array.html

引言:今儿写一个报表,想要初始化一个list集合,发现要指定一个固定长度的集合居然还挺麻烦的,于是便有了这出…

1.数组的声明
String[] str;
String str[];不推荐该写法

2.数组的初始化

String[] str1 = new String[15]; //初始化长度为15的数组、初值为null
String[] str2 = {"aa","bb","cc"}; 
String[] str3 = new String[]{"aa","bb"};
String[] str4 = new String[15];
for(int i=0;i<str4.length;i++) {
    str4[i] = i+"";
}
//多重数组
String[][] s = new String[2][2];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");

3.数组的一些使用技巧
a、以下数组可以利用Arrays工具转化为String:
这里写图片描述

b、数组可以通过Arrays.asList()转化为List,但是int、float等基本类型除外、需要使用相应的包装类型:

Integer[] ints = new Integer[]{1,5,7,6,5};
List<Integer> list = Arrays.asList(ints);

c、还可以通过list来创建list:

List<Integer> list1 = Arrays.asList(ints);
List<Integer> list2 = new ArrayList<>(list);

d、可以通过Arrays.asList()搭桥,转化为set:

Integer[] ints = new Integer[]{1,5,7,6,5};
List<Integer> list = Arrays.asList(ints);
Set<Integer> set = new HashSet<>(list);

e、给数组赋初值的绝招:

Integer[] ints = new Integer[]{1,5,7,6,5};
Arrays.fill(ints, 13);

f、可通过数组初始化指定长度、指定初值的list:

Integer[] ints = new Integer[]{1,5,7,6,5};
Arrays.fill(ints, 13);
List<Integer> list = Arrays.asList(ints);

g、数组排序:

Integer[] ints = new Integer[]{1,5,7,6,5};
Arrays.sort(ints);
//给指定索引排序,此处开始索引为2,结束索引为5-1=4
Arrays.sort(ints,2,5);

h、数组的复制,需要指定新的长度:

Integer[] ints = new Integer[]{1,5,7,6,5};
Integer[] ins = Arrays.copyOf(ints, ints.length);
Integer[] in1 = Arrays.copyOf(ints, 3);
Integer[] in2 = Arrays.copyOf(ints, 10);
System.out.println(Arrays.toString(in1));
System.out.println(Arrays.toString(in2));

输出:
[1, 5, 7]
[1, 5, 7, 6, 5, null, null, null, null, null]

//复制指定长度的数组:
Integer[] ints = new Integer[]{1,5,7,6,5};
此处开始索引为0,结束索引为3-1=2
Integer[] in1 = Arrays.copyOfRange(ints, 0, 3);
System.out.println(Arrays.toString(in1));

输出:
[1, 5, 7]

i、比较两个数组

Integer[] ints = new Integer[]{1,5,7,6,5};
Integer[] in1 = Arrays.copyOfRange(ints, 0, 3);
Integer[] in2 = Arrays.copyOfRange(ints, 0, 4);
boolean b = Arrays.equals(in1, in2);

j、数组快速去重,但是需要重新转换回数组:

Integer[] ints = new Integer[]{1,5,7,6,5};
Set<Integer> set = new HashSet<>(Arrays.asList(ints));
System.out.println(set);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值