Java韩顺平基础课-数组练习01、02、03 + 牛客Java844题

Java韩顺平基础课-数组练习01、02、03 + 牛客Java844题

码农世界 2024-05-22 前端 68 次浏览 0个评论

Part 1 数组练习

1、这个需要注意的是java里面数组声明和c++中不太一样。java里数组用new声明,声明不声明都可以。但声明后都会分配内存,不声明一般就放在函数栈空间中,而且无法使用。和c++中不太一样的是java中数组声明后不用手动释放堆内存,虚拟机会帮我们自动释放掉。

代码如下:

public class ArrayExercise01 {
    public static void main(String[] args) {
        char[] chars = new char[26];
        for (int i = 0; i < chars.length; i++) {
            chars[i] = (char)('A' + i);
        }
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i] + " ");
        }
    }
}

2、这个思路和c++里面一毛一样。注意下java里两数比较最大值函数是Math.max(),不用担心弄混。但最好还是换一个命名方式。

public class ArrayExercise02 {
    public static void main(String[] args) {
        int[] nums = {4, -1, 9, 10, 23};
        int maxNum = nums[0];
        int maxIndex = 0;
        for (int i = 0; i < nums.length; i++) {
            if (maxNum < nums[i]) {
                maxNum = nums[i];
                maxIndex = i;
            }
        }
        System.out.println(maxNum + " " + maxIndex);
    }
}

3、需要注意先用double类型求和,或者之后要强转成double,也要看一开始数组的类型了。如果直接用int型最后的平均数就也会是整型。比如这组数据。

其实应该是

代码如下:

public class ArrayExercise03 {
    public static void main(String[] args) {
        int[] nums = {4,-1,9,23};
        double sum = 0;
        for (int i =0; i < nums.length; i++)
            sum += nums[i];
        double average = sum / nums.length;
        System.out.println(sum + " " + average);
    }
}

Part 2 Java 844题 

        这题可以参考这个链接,感觉有点抽象。

面试题+算法题-CSDN博客https://blog.csdn.net/weixin_45082647/article/details/107814399

        考的线程状态切换,没啥好说的

 这个题目建议自己手敲一下看看结果。尝试之后会发现并发时候,由于执行顺序的先后次序,线程输出顺序很多时候都是不一样的,一般都不规整。

这题主要靠的是4输出完之后才会输出一个空格来排除其他选择项。我选的这个其实是因为不会输出5,所以也可以排除掉。

        看这个链接就好

哪些类继承了Collection接口_继承collection接口的集合-CSDN博客https://blog.csdn.net/weixin_43801300/article/details/99589087

转载请注明来自码农世界,本文标题:《Java韩顺平基础课-数组练习01、02、03 + 牛客Java844题》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,68人围观)参与讨论

还没有评论,来说两句吧...

Top