这样写,有什么影响吗?我只觉得这么写,就没有下面的因果关系了。

这样写,有什么影响吗?我只觉得这么写,就没有下面的因果关系了。

我的问题是代码的解耦与重用性是否没做到?

//添加歌曲到播放列表--我的代码
    public void addToPlayList(Song song) {
        for(Song song1:musicList) {
            if(song1.equals(song)) {
                System.out.println(song.getName()+"这首歌曲已经存在");
                return;
            }
        }
        musicList.add(song);
        
    }

-----------------------------------------------------------

//添加歌曲到播放列表--老师的代码
    public void addToPlayList(Song song) {
        boolean flag=false;
        for(Song song1:musicList) {
            if(song1.equals(song)) {
                flag=true;break;
            }
        }
        if(flag) {
            System.out.println("该歌曲已存在");
        }else {
            musicList.add(song);
        }
            
    }

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学的代码没有什么问题,重用性相对于老师的代码而言灵活性差了一点,我们后续如果想对结果进行操作,就会稍微麻烦一些。对于代码解耦,现在我们的代码复杂度很低,所以没有考虑代码解耦。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • weixin_慕雪6458441 提问者 #1
    还有三个问题。 问题一:就是PlayList类里面用List封装Song,我理解了,对象类的封装用collection的,那为什么PlayListMap类里面用map来封装playList呢?使用List或者Set是否也能实现? 问题二:学习完基础阶段了,可以进入第二阶段了,但是第一阶段里面的map集合的运用,在实际案例中的使用,我还是不太理解,是否还有办法可以让我再消化消化,能更加掌握集合的使用? 问题三:对于线程这个知识点,现阶段我只能简单理解有线程这么一个概念,在同步锁上以及线程池之类的问题,可能之后工作当中会遇到,但是我感觉自己工作中会理解不来实际项目的代码,这块是否有途径可以让我再成长一下呢?或者说一般来讲,千万级或者百万级以下的项目,对于线程的运用会比较少,当前我不用太关注这块?
    2020-03-20 23:45:32
  • 同学你好, 1.使用List和Set集合也能实现,我们之所以用map集合存取,是能方便我们想取出某一个播放歌曲列表的时候能够通过名字准确的取出,如果使用其他集合我们需要遍历并判断,比较麻烦。 2. 同学可以再重复敲一下老师的代码,或者在网上找一些习题做做去网上找一些关于集合的知识看一看,平时的学习不要局限于课堂,后续的学习中我们会经常用到集合,慢慢就会熟练对集合的应用。 3. 一般要比较多的并发项目要关注线程,现阶段同学不用太关注。而且实际的项目代码中一般不会让我们来编写多线程,但我们需要多了解它的一些原理,这样才能编写出更好的代码,同学可以多做一些关于多线程的练习题,加深对于线程的理解。 如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
    2020-03-21 13:36:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师