java学习随笔(2)

1.字符串转数组

  • 转字符数组:String.toCharArray()方法,返回char[]
  • 转字符串数组:String.split()方法,返回String[]

2.数组转字符串

  • 字符数组转字符串

方法1:直接在构造String时转换。

char[] data = {'a', 'b', 'c'};
String str = new String(data);

方法2:调用String类的方法转换。

String.valueOf(char[] ch)

  • 字符串数组转字符串

方法一: 遍历

String[] arr = { "0", "1", "2", "3", "4", "5" };
// 遍历
StringBuffer str5 = new StringBuffer();
for (String s : arr) {
    str5.append(s);
}
System.out.println(str5.toString()); // 012345

方法二: 使用StringUtils的join方法

//数组转字符串 org.apache.commons.lang3.StringUtils
String str3 = StringUtils.join(arr); // 数组转字符串,其实使用的也是遍历
System.out.println(str3); // 012345
String str4 = StringUtils.join(arr, ","); // 数组转字符串(逗号分隔)(推荐)
System.out.println(str4); // 0,1,2,3,4,5

方法三: 使用ArrayUtils的toString方法

// 数组转字符串 org.apache.commons.lang3.ArrayUtils
String str2 = ArrayUtils.toString(arr, ","); // 数组转字符串(逗号分隔,首尾加大括号)
System.out.println(str2); // {0,1,2,3,4,5}

方法四:使用Array.stream()类

String[] aaa={"11","22","33"};
String a= Arrays.stream(aaa).collect(Collectors.joining());
System.out.print(a); // 112233

3.相等判断(==与equals)

  • 如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否相对。
  • 如果变量是引用类型,==运算符判断变量是否指向同一引用对象,equals判断变量"值"是否相等。

Java值类型对应的包装类(Boolean、Byte、Short、Integer、Long、Float、Double、Charcater)可以利用==运算符进行值判断。

4.StringBuffer类

StringBuffer与String相互转换
StringBuffer 用法小结

5.经典算法题:买卖股票的收益

分别涉及到了动态规划和贪心算法
I
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。

II
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。

III
假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。 样例: 给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6

IV
假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。
设计一个算法来找到最大的利润。你最多可以完成 k 笔交易。注意:你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票)

四种题目的思路分析

6.去除数组中的重复元素

  1. 遍历数组,将不重复的放入新数组,复杂度n^2
  2. 使用集合list的方法contains(),判断新数组中是否包含重复
  3. 使用无序不重复集合set来实现去重
java集合详解:Java集合类: Set、List、Map、Queue使用场景梳理

7.Object类

Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。这里主要总结Object类中的三个常用方法:toString()、equals()、hashCode()。
Object类常用方法
Object类转换为其他实体类可以使用常用的强制类型转换:

  • (int)
  • (char)
  • .toString
  • String.valueOf()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值