JAVA实现在数据不匹配时把数据写到文件中

本文介绍了一种使用Java检查Map中的值是否存在于List中的方法。通过遍历Map和List,利用Boolean标志来判断是否存在匹配项,若不存在则输出ID并记录到文件。注意标志变量的作用域及正确使用。

场景:有一个map存有ID和字符串,一个list存有字符串,判断map中的字符串是否在list中存在。如果不存在,则打印到控制台,并写入到一个文件中。

代码如下:

for (String obj : mapDB.keySet()) {

                //定义一个Boolean值,当匹配成功时,停止执行程序
                boolean  flag = false;

               //获取map中的字符串
                String value = mapDB.get(obj);

                //循环遍历获取list中的值,
                for (int i = 0; i < files.size(); i++) {

                     //判断map中的字符串是否在list集合中存在,如果存在,则flag=true,并停止执行程序。
                    if(files.get(i).replaceAll("\\\\", "/").equals(value)) {
                        flag = true;
                        break;
                    }
                }

               //如果flag一直为false,说明map中的字符串在list中没有匹配的值,说明list中的字符串在list中不存在,则在控制台输出ID。
                if(!flag) {
                    System.out.println(obj);
                    FileWriter fileWritter = new FileWriter("E:\\hello.txt",true);
                    fileWritter.write("i am ironman");
                    fileWritter.close();
                }
            }

切记:局部变量的作用范围,如果flag写到两个for循环之外,那么flag的值一直为false,不能随着最里面的for循环发生变化。该flag的作用是在跳出最里层的for循环后判断flag是否为true,如果不为true,说明不匹配,则打印。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iamlzjoco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值