代码小课堂

首先是第一个问题: 顺序表的默认长度是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类型数据.

但是我的数据是字符啊,要怎么才能变成字符串,有一个非常好用的技巧:就是在字符后面加一个双引号("");

以上就是文章的全部内容啦,假如对你有帮助的话,麻烦点一个免费的赞.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值