首先是第一个问题: 顺序表的默认长度是10吗?请看下面的分析.
要想搞清楚这个问题,我们要从源码出发.我利用图片的形式来解释清楚.
带着这个问题我们往下分析.
总结1:在顺序表中,调用无参构造方法前提条件下,数组默认不是10,而是当调用了add()方法数组长度才是10;
下面来看一道经典面试题:
题目是这样描述的:请删除第一个字符串中出现的第二个字符串中的字符.题目代码如下.
public static ArrayList<Character> func(String str1, String str2){
ArrayList<Character> str = new ArrayList<>();
for (int i = 0; i < str1.length(); i++) {
char str1Char = str1.charAt(i);
//字符串这个方法中的参数是 CharSequence,而String是实现这个接口的,所以传入的参数一定要是一个字符串.
if(!str2.contains(str1Char + "")){
str.add(str1Char);
}
}
return str;
}
public static void main(String[] args) {
String str1 = "welcome to jiangxi";
String str2 = "come";
ArrayList<Character> arrayList = func(str1, str2);
System.out.println(arrayList);
}
这里比较难想到的有两点:
第一点:用charAt方法来获取字符串中的字符.
第二点: String中的contains方法的参数类型是CharSequence;
第一点没什么好讲的,主要分析一下第二点.
综上所述: char类型数据不能传入,要传入参数可以传入String类型数据.
但是我的数据是字符啊,要怎么才能变成字符串,有一个非常好用的技巧:就是在字符后面加一个双引号("");
以上就是文章的全部内容啦,假如对你有帮助的话,麻烦点一个免费的赞.