Java ArrayList集合在其中一条数据后新增数据

大家好!最近一直在学习Java高级,学到了集合,今天在做题的时候遇到了一些问题,在这里分享给大家!

今天在做有关于集合的题,其中有一个题是这样的:

定义List,存在String类型的字符串”苹果”,”香蕉”,”梨”。添加一个 “桃” 放在梨的后面

当我第一眼看到这个题的时候我心里想这还不简单吗,结果当我真写起代码来才发现自己真的是眼高手低了。

我一开始的结局方案是知道梨的下标,然后就直接把桃写到了梨下标后面的下标上,桃自然就到了梨的下面。

public class List1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("apple");
        list.add("banana");
        list.add("pear");
        String a = list.get(2);
        list.add(3,"peach");

嗯。。。确实能运行,但是这时在我心中产生了一个疑问,如果不知道梨的下标呢,那又怎么添加呢?于是我开始了思考及讨论,经过了思考,我想出了一个办法:

int n = 0;
        for (String w : list){
            if(w.equals("梨")){
                break;
            }
            n++;
        }

看似简短的代码,但需要认真思考和反复实验,这里我们先定义一个变量,这个变量在这里的目的是记录梨的下标。我们先遍历集合,然后在集合里筛选,找到梨,当我们找到梨时,就让他终止循环,找不到则继续循环,每循环一次,n就+1,找到梨n就停止,也就是说n就代表了梨的下标,这样找到了下标我们就可以在他后边增加新的数据了。 

这是第二个办法,想出这个办法来我还是觉得不是最佳办法,我在想还有没有其他办法,于是我继续寻找新的解决办法,功夫不负有心人,在饭空里的时间我阅读了一些资料,最终找到了我想要的答案。那就是运用迭代来实现。

具体代码如下:

//获取列表迭代器
        ListIterator<String> lit = list.listIterator();
        while (lit.hasNext()) {
            String s = lit.next();
            if(s.equals("梨")) {
                lit.add("桃");
            }
        }
        System.out.println(list);

至此,成功的把数据添加到梨的后面。这是最简便的一种方法。这个方法可以不用寻找下标来找到相应的数据,可以直接通过找到数据然后直接添加。这就是我今天要分享给大家的知识,希望对大家有用处,内容虽简,但包含着很多细节和知识。喜欢的记得点赞收藏!谢谢观看!

猜你喜欢

转载自blog.csdn.net/m0_66403070/article/details/127094883