各章节遇到的问题(一)

各章节遇到的问题(一)



前言

(1)分布式版本控制系统Git
(2)迭代器中删除操作的思考


一、分布式版本控制系统Git

容易混淆的部分
一个Git仓库分为三个部分(本地):
(1).git目录:指的是本地CMDB(即仓库)
(2)工作目录:本地文件系统
(3)暂存区:.git 目录中的一个文件(配置项),隔离工作目录和 Git 仓库
操作即这三个部分再加上远程仓库之间相互构成的
而我们默认开始操作的位置即是工作目录(意思是在本地文件系统增加或减少需要的文件)
工作目录中的文件存在着三种状态
(1)已修改:即我们刚对文件做完相关操作时所保持的状态,此时还没有实施相应改变其状态的git指令,其表示的含义为:工作目录中的该文件和Git仓库中的有差异(未提交),且尚未提交到暂存区;
(2)已暂存:即我们将工作目录中已修改的文件提交到了暂存区(对应的git指令为:git add “文件名”.文件类型),其含义表示:工作目录中的该文件和Git仓库中的有差异(未提交),但已提交到暂存区;
(3)已提交:即我们将已暂存在暂存区的文件提交到本地仓库,与其中已存在的部分合并(对应的git指令:git commit -m “ 备注 ”),其含义表示:作目录中的该文件和Git仓库中的相同;

二、迭代器中删除操作的思考

代码如下

    public void test(){
        ArrayList<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < 5; i++) {
            list.add(i);
            list.add(i);
        }
        System.out.println("前:" + list);
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).equals(2)){
                list.remove(i);
            }
        }
        System.out.println("后:" + list);
    }

这很明显是一个反面例子,的确在绝大多数运用中采用list.remove的方法即会导致这样一个逻辑漏洞(你以为的1是它内部的0)
如果要避免不必要的错误,应当要将其中的list.remove方式更改为使用迭代器.remove
但这种模式也是又可以应用的场景:
比如上述代码的前提是列表中每个数字重复两次并且是相邻存在的,所以在删除时会有疏忽的情况,但倘若它只是出现一次的情况,那采用list的方法也是合适的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值