仗剑走天涯——『那些年,我遇到的坑』

java SE

for—each 不能操作元素本身

我的需求

  将只包含 1和0 的二维数组的所有元素反置,即所有1变成0、0变成1。

  原始数组:

我的做法

  使用for—each操作数组:

public class test {

    public static void main(String[] args) {
        int[][] array = {{0,0,1,1},{1,0,1,0},{1,1,0,0}};
        
        // for-each 操作
        for(int[] arr : array) {
            for(int k : arr) {
                k ^= 1;
            }
        }

    }
}

  乍一看,没啥问题。

  但是,我们来看看操作后的数组:

  数组元素完全没有变化,和原始数组一模一样。

  查了一下,for—each的底层实现是迭代器,就是在循环中拿到的是每一个元素的值(可以理解为拷贝其值),而不是每一个元素本身。

  因此,我们并不能使用for—each来对数组元素本身进行操作,只能使用数组元素本身。

正确的做法

  使用正常的for循环,来对数组元素本身进行操作:

public class test {

    public static void main(String[] args) {
        int[][] array = {{0,0,1,1},{1,0,1,0},{1,1,0,0}};
        
        // for循环操作
        for(int i=0; i<array.length; i++) {
            for(int j=0; j<array[i].length; j++) {
                array[i][j] ^= 1;
            }
        }
        
        // 遍历
        for(int[] arr : array) {
            for(int k : arr) {
                System.out.print(k + " ");
            }
            System.out.println();
        }
    }
}

运行结果:

结论

  for—each的底层实现是迭代器,只适合拿到元素的值,然后进一步操作的情况,它并不能影响元素本身,不适合对元素本身进行操作的情况。

 


 

  持续跟新中。。。

 

 

 


Maven

Plugins里面出现红线

错误样式:

出错原因:

  插件没有下载完整 或 没有下载,需要下载完整依赖包。

解决方法:

  进入 C:\Users\xx\.m2\repository\org\apache\maven\plugins目录下,如图:

  哪个插件有红线,就去对应的文件夹下删除所有的文件,然后重新导入插件:

   等待下载,完成之后就不会报红线了。

 


 

   持续更新中。。。

 

 

 


Spring Boot

IDEA新建项目时,没有Spring Initializr选项

解决方法:

  在settings -> Plugins 里面搜索spring boot,勾选上,然后再重启下idea,就可以了。

  如果Plugins里面没有spring boot的话,先安装下,再勾选。

 


 

IDEA创建spring boot项目,没有src文件也没有依赖得标签

错误样式:

错误原因:

  maven无法从互联网下载项目包,需要配置maven。

解决方法:

  配置参数:将VM-options设置为:archetype=Internal

  点击OK。

  删除当前项目,重新创建,就会有src目录,如图所示:

 


 

打包错误:xxxxx-0.0.1-SNAPSHOT.jar中没有主清单属性

错误样式:

解决方法:

  在pom.xml中添加如下配置,会自动检测主类。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

 


 

打包错误:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...

解决方法:

  修改maven-resources-plugin的版本。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

        <!--在这里修改版本-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
        </plugin>
        <!---->

    </plugins>
</build>

 


 

持续跟新中。。。

 

posted @ 2020-12-07 22:22  城北有个混子  阅读(208)  评论(0编辑  收藏  举报