数组里面的常见操作-创新互联

一.求最值

为东明等地区用户提供了全套网页设计制作服务,及东明网站建设行业解决方案。主营业务为成都网站制作、网站设计、外贸网站建设、东明网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
public class Test22 {
    public static void main(String[] args){
        //需求:已知数组元素(33,5,22,44,55』
        //求数组中的大值并打印在控制台;
        int[] arr={33,5,22,44,55};
        int max=arr[0];//临时认为0索引大;
        //拿每一个元素和max进行比较;
        for (int i = 0; i max){
                max=arr[i];
            }
        }
        System.out.println(max);//55
    }
}

扩展问题:

1.为什么max要纪录为arr[0],默认值不能为0吗?

不能写0,max的初始值一定要是数组中的值;

2.循环中的开始条件一定为0吗?

循环中的开始条件如果为0,那么第一次循环的时候是自己跟自己比了一下,对结果没有任何影响,但是效率低,为了提高效率,我们减少一次循环次数,所以循环开始条件为1;

二.遍历数组求和

import java.util.Random;

public class Test23 {
    public static void main(String[] args) {
        //需求:生成10个1-100之间的随机数存入数组;
        //1.求出所有数据的和;
        //2.求所有数据的平均数;
        //3.统计有多少个数据比平均值小;
        int[] arr = new int[10];
        Random r = new Random();
        for (int i = 0; i< arr.length; i++) {
            int number = r.nextInt(100)+1;
            arr[i] = number;
        }
        int sum=0;
        for (int i = 0; i< arr.length; i++) {
            sum=sum+arr[i];
        }
        System.out.println("数组中所有数据的和为:"+sum);
        int avg=sum/arr.length;
        System.out.println("数组中的平均数为:"+avg);
        int count=0;
        for (int i = 0; i< arr.length; i++) {
            if(arr[i]

三.交换数组中的数据

public class Test25 {
    public static void main(String[] args){
        int[] arr={1,2,3,4,5};
        for(int i=0,j=arr.length-1;i

四.打乱数组中的数据

import java.util.Random;

public class Test26 {
    public static void main(String[] args){
        int[] arr={1,2,3,4,5};
        Random r=new Random();
        for (int i = 0; i< arr.length; i++) {
            int randomiIndex = r.nextInt(arr.length);
            int temp = arr[i];
            arr[i] = arr[randomiIndex];
            arr[randomiIndex] = temp;
        }
            for (int i= 0; i< arr.length; i++) {
                System.out.print(arr[i]+"");
            }

        }
    }

五.Java内存分配:

1.栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行;

堆:存储对象或者数组,new来创建的,都存储在堆内存;

方法区:存储可以运行的class文件;

本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关;

寄存器:给CPU使用,和我们开发无关;

2.数组的内存图:

因为数组里面的数据太多了,所以数组一般存储在打印出的地址值中;

注意:1.只要是new出来的一定是在堆里面开辟了一个小空间;

2.如果new了多次,那么在堆里面有多个小空间,每个小空间都有各自的数据;

3.两个数组指向同一个空间的内存图;

当两个数组指向同一个小空间时,其中一个数组对小空间中的值发生了改变,那么其他数组再次访问的时候都是修改之后的结果了。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:数组里面的常见操作-创新互联
文章网址:http://myzitong.com/article/cojcgj.html