[Java编程小技巧总结]:编程技巧总结

说明

在编程中我们一直会思考,我们如何将我们的代码写得更加好一些,而不至于一直写那些原生的代码,这样会看起来比较繁琐。其次,这里也总结了一些常用的编程技巧。

数组

1、如何优雅地将int[ ] ,char[ ],之类的数组转化成List集合呢?
很多人都会这样说,直接使用

		new ArrayList(Array.asList(new int[]{1,2,4}));

但是这样得出来的结果会变成下面的形式:

		List<int[ ]> intList = new ArrayList(Array.asList(new int[]{1,2,4}));

上面的不是我们想要的形式
所以我们可以使用流的方式来优雅得解决这个问题

        int[] ints = new int[]{1,2,3};
        List<Integer> intList = Arrays.stream(ints).boxed().collect(Collectors.toList());

但是如果我们使用我们的包装类数组,如Integer[ ] intergers 的形式,我们就可以直接使用Arrays.asList()的方式来转换。

2、输出数组,我们一般会使用遍历的方法,但是有一些时候,就非常不想使用遍历的方式来写,想使用一行代码搞定它,所以我们要活用Arrays工具类

        int[] ints = new int[]{1,2,3};
        System.out.println(Arrays.toString(ints));

集合

1、我们的集合元素下标是从0开始的,如果要得到集合中的倒数第k个元素,只需要:list.size() - k即可

		linkedList.get(linkedList.size() - k);

2、如何将一个集合快速复制到另一个集合中,而不是new一个新的集合遍历之前的集合?

		LinkedList<Object> linkedOne = new LinkedList<>();
		linkedOne.add(1);
		linkedOne.add(2);
		linkedOne.add(3);
		LinkedList<Object> linkedTwo = new LinkedList<>(linkedOne);
		System.out.println(linkedTwo);

字符串

1、我们经常会遇到字符串反转,那么又该怎么样一步到位把字符串给反转呢?使用我们的StringBuilder或者StringBuffer

        String str = "abc";
        String reverseStr = new StringBuilder(str).reverse().toString();
        System.out.println(reverseStr);

但如果我们使用的是这样:

		StringBuilder builder = new StringBuilder("abc");
		builder.reverse();
		System.out.println(builder);
  // 结果返回是的cba

说明StringBuilder和StringBuffer在reverseString的时候,会把原本的值给reverse,而不是保存这个值,然后把反转的值给返回给一个新的Builer或者Buffer。

2、字符串中,有时候会遇到这样一种问题:

		String line = "a b  c         ";

我们直接使用line.spilt(" “)分割的时候,分割到c之后就不会再分割下去了,而如果我们使用line.spilt(” ",-1)的时候,就是连后面的空格也会分割成字符。

总结:
1.如果字符串最后一位有值,则没有区别,
2.若干最后n位都是切割符,split(" “)不会继续切分,split(” ", -1)会继续切分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值