Javastudy_day004
简易数组
1、数组定义与基本使用
<类型名>[ ] 数组名=new <类型名> [数组元素个数] ; (数组元素个数可以为常量也可以为变量)
<类型名>[ ] 数组名={ 1,2,3,4 } ;
1、 数组元素个数定义为常量的情况:
package com.day0001.contact;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int x=0;
int [] numbers=new int [100];
numbers[0]=in.nextInt();
int count=0;
int sum=0;
//数组以-1为结尾标志
while(numbers[count]!=-1)
{
sum+=numbers[count];
count++;
numbers[count]=in.nextInt();
}
if(count>0)//此时数组不为空
{
System.out.println("数组元素个数为: "+count);
System.out.print("数组元素依次历遍为: ");
for(int i=0;i<count;i++)
{
System.out.print(numbers[i]+" ");
}
double average=sum/count;
System.out.println("数组元素平均值为: "+average);
System.out.print("数组元素中大于平均值的有: ");
for(int i=0;i<count;i++)
{
if(numbers[i]>average)
{
System.out.print(numbers[i]+" ");
}
}
}
}
}
2、数组元素个数定义为变量的情况:
package com.day0001.contact;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int count=in.nextInt();//输入数组元素个数
int [] numbers=new int [count];//数组元素个数定义为变量
int sum=0;
for(int i=0;i<count;i++)
{
numbers[i]=in.nextInt();
sum+=numbers[i];
}
if(count==numbers.length)
{//numbers.length 数组长度
if(numbers.length>0)
{
System.out.println("数组元素个数为: "+"numbers.length= "+numbers.length+"; count= "+count);
System.out.print("数组元素依次历遍为:");
for(int i=0;i<numbers.length;i++)
{
System.out.print(numbers[i]+" ");
}
double average=sum/numbers.length;
System.out.println("数组元素平均值为: "+average);
System.out.print("数组元素中大于平均值的有: ");
for(int i=0;i<numbers.length;i++)
{
if(numbers[i]>average)
{
System.out.print(numbers[i]+" ");
}
}
}
}
}
}
2、数组的简易计算(投票统计))
数组没有初始化时,默认所有数组元素都为零
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//投票统计 :输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数
//输入-1表示输入结束
int x;
int [] numbers =new int [10];//记录出现次数
//数组没有初始化时,默认所有数组元素都为零
for(int i=0;i<numbers.length;i++)
{//检查在没有初始化时是否默认了所有数组元素都为零
System.out.print(numbers[i]);
}
System.out.println();//换行
x=in.nextInt();
while(x!=-1)
{
if(x>=0&&x<=9)
{
numbers[x]++;
}
x=in.nextInt();
}
System.out.print("统计票数: ");
for(int i=0;i<numbers.length;i++)
{
System.out.print(i+"的个数:"+numbers[i]+"票 ");
}
}
}
3、建立素数表
package com.day0001.contact;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//建立素数表
boolean[] isPrime=new boolean [100];
//默认情况下boolean数组全是false
for(int i=0;i<isPrime.length;i++) {
System.out.print(isPrime[i]+" ");
}
System.out.println();
for(int i=2;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;
}
}
}//将2、3、4、.....n这些数的>=2倍数的数(这些都是非素数)都由true改为false,0和1没有被赋值过true,依然是false
for(int i=0;i<isPrime.length;i++) {
if(isPrime[i]) {
System.out.print(i+" ");
}
}
}
}
4、二维数组
二维数组的初始化
int [ ][ ]数组名=new int [ ][ ] ;
int [ ] [ ]数组名={ { },{ },…};
package com.day0001.contact;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//二维数组的初始化
int [][] numbers=new int [3][5];
//三行五列的矩阵
int [][]a = { {1,2,3,4,5}, {1,2,3,4}, {1,2,3} };
}
}