关于java数组的学习心得

 求平均数并打印出大于平均数的数

 public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int x;
        int [] numbers = new int [100];
        //定位数组并创建了数组
        double sum = 0;
        int cnt = 0;
        x = in.nextInt();
        while ( x != -1 )
        {
            numbers [cnt] = x;
            // numbers[0] = x;
            sum += x;
            cnt ++;
            x = in.nextInt();
        }
        if (cnt>0 )
        {
            double average = sum/cnt;
            for ( int i = 0; i<cnt; i++)
            {
                if (numbers[i] > average)
                {
                    System.out.println(numbers[i]);
                }
            }
            System.out.println(sum/cnt);
        }
    }

数组是一种容器,特点是

1.其中所有的元素具有相同的数据类型;

2.一旦创建,不能改变大小

数组是一种数据结构,能记录同一种类型的多个数据


1.数组中的每个数据叫做元素;

2.所有的元素具有相同的数据类型


定义数组变量


<类型>[]<名字>=new <类型>[元素个数];

int[]  grades = new int[100];

double[] averages = new double [20];

元素个数必须是整数;

元素个数必须给出;

元素个数可以是变量

int[] a = new int[10]

创建了一个int型的数组

10个元素:a[0],a[1],...,a[9]

每个元素是一个int 的变量

可以读和写:a[2] = a[1] +6;

有效的下标

最小的下标是0,最大的下标是数组的元素个数-1;

编译器不会检查看你是否使用了有效的下标;

运行时出现了无效的下标,程序会终止进行

 根据上面对程序加以更改

改为先让用户输入我们要输入多少个数字,然后在进行其他计算
   
 public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        double sum = 0;
        int cnt = 0;
        cnt = in.nextInt();
        if (cnt>0)
        {
            int[] numbers = new int[cnt];
            for (int i = 0; i<cnt; i++)
            {
                numbers[i] = in.nextInt();
                sum += numbers[i];
            }
            double average = sum/cnt;
            for ( int i = 0; i<cnt; i++ )
            {
                if ( numbers[i] > average)
                {
                    System.out.println(numbers[i]);
                }
            }
        }
    }

投票系统

 public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int x;
        int[] numbers = new int[10];
        x = in.nextInt();
        while ( x!=-1)
        {
            if (x>=0 && x<=9)
            {
                numbers[x] ++;
            }
            x = in.nextInt();
        }
        for (int i=0;i<numbers.length;i++)
        {
            System.out.println(i+":"+numbers[i]);
        }
    }

 直接初始化数组

new创建的数组会得到默认的0值

int[] scores = {1,2,3,6,76,8,,3,2,34,243};

直接用大括号给出的数组的所有元素的初始值;

不需要给出数组的大小,编译器用length得到 


数组变量

数组变量是数组的管理者而非数组本身

数组必须创建出来然后交给数组变量来管理

数组变量之间的赋值是管理权限的赋予

数组变量之间的比较是判断是否管理同一个数组


遍历数组

通常都是使用for循环,让循环变量i从0到<数组的length,这样循环体内最大的i正好是数组最大的有效下标

常见的错误是:
1.循环结束条件是<=数组长度
2.离开循环后,继续用i的只来做数组元素的下标

for-each


for(<类型> <变量>:<数组>)

{
...
}


 判断是否能被已知的且<的素数整除

  
public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int[] primes = new int[50];
        primes[0] = 2;
        int cnt = 1;
        MAIN_LOOP:
        for (int x = 3; cnt<50;x++)
        {
            for ( int i = 0;i<cnt;i++)
            {
                if (x % primes[i] == 0)
                {
                    continue MAIN_LOOP;
                }
            }
            primes[cnt++] = x;
        }
        for (int k:primes)
        {
            System.out.print(k+" ");
        }
    }

打印前100个素数

遍历数组为true然后每个数的倍数都标记为false
public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        boolean[] isPrime= new boolean[100];
        for(int i =0; i<isPrime.length;i++)
        {
            isPrime[i] = true;
        }
        for (int i=2;i<isPrime.length;i++)
        {
            if(isPrime[i])
            {
                for(int k= 2;i*k<isPrime.length;k++)
                {
                    isPrime[i*k] = false;
                }
            }
        }
        for (int i=2;i<isPrime.length;i++)
        {
            if(isPrime[i])
            {
                System.out.print(i+" ");
            }
        }
    }

 二维数组

int[][] a = new int[3][5]
通常理解为a是一个3行5列的矩阵

for ( i=0; i<3; i++)
{
    for ( j=0; j<5; j++)
    {
		a[i][j] = i*j;
	}
}
int[][] a = {
    {1,2,3,4},
    {1,2,3},
};
编译器来数数,每行一个{}分开
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《超市积分管理系统》该项目采用技术jsp、strust2、tomcat服务器、mysql数据库 开发工具eclipse,项目含有源码、论文、配套开发软件、软件安装教程、项目发布教程    超市会员积分管理系统主要用于实现了企业管理数据统计等。本系统结构如下:(1)网络会员管理中心界面:       会员修改密码信息模块:实现会员密码功能;       会员登陆模块:实现会员登陆功能;       会员注册模块:实现会员注册功能;       留言板模块:实现留言板留言功能(2)后台管理界面:       系统用户管理模块:实现管理员的增加、查看功能;       会员信息管理模块:实现会员信息的增加、修改、查看功能;       注册用户管理模块:实现注册用户的增加、修改、查看功能;       会员卡管理模块:实现会员卡信息的增加、查看功能;       商品销售管理模块:实现商品信息的增加、查看功能;       会员积分管理模块:实现合作公司信息的增加、查看功能;       信息统计模块:实现数据统计报表功能;       留言板模块:实现留言板信息的增加、修改、查看功能; 课程目标:    1、学会各类开发软件安装、项目导入以及项目发布,含项目源码,需求文档,配套软件等    2、该项目主要功能完善,主要用于简历项目经验丰富,以及毕业设计或者二次开发    3、提供项目源码,设计文档、数据库sql文件以及所有配套软件,按照教程即可轻松实现项目安装部署 本课程为素材版,需要实战版代码讲解教程的同学可以点击如下链接:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572JavaWeb项目实战之宿舍管理系统https://edu.csdn.net/course/detail/26721JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610java项目实战之电子商城后台(java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值