Java数组

  • 1.数组定义格式(相同类型)引用类型

1)格式一:数据类型【】变量名 eg.int[] arr;

             定义了一个int类型的数组,数组名是arr;

2)格式二:数据类型 变量名【】 eg.int arr【】

定义了一个int类型的变量,变量名是arr数组

  • 2.数组初始化

1)动态初始化:数据类型【】变量名=new 数据类型【数组长度】

eg.int[] arr=new arr[3];

2) 静态初始化:数据类型【】变量名=(new 数据类型【】){数据1,数据2,数据3......}

  • 3.内存分配

1)栈内存,局部变量,就是地址

2)堆内存,new之后数据

任何两个指向相同的数组,当一个数组发生改变,另一个数组也发生改变。

  • 4.常见问题

索引越界,超出:ArrayIndexOutOfBoundsException

空指针异常,null:NullPointerException

  • 5.遍历

for循环进行遍历, 数组名.length

int[] arr={......};
for(int i=0;i<arr.length;i++){
     arr[i];//对arr进行操作
}
  • 6.获取最值
    public class Zuidazhi {
        public static void main(String[] args){
            int[]arr={22,23,45,2};//定义数组
            int max=arr[0];
                    for(int i=0;i<arr.length;i++){
                        if(arr[i]>max)max=arr[i];
                    }
                    System.out.println(max);
        }
    }
    

    例题:

7-1 有重复的数据 (10 分)

在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。

你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。

输入格式:

你的程序首先会读到一个正整数n,n∈[1,100000],然后是n个整数。

输出格式:

如果这些整数中存在重复的,就输出:

YES

否则,就输出:

NO

输入样例:

5
1 2 3 1 4

输出样例:

YES

//内存超出,但结果正确
import java.util.Scanner;
public class Chongfudeshu {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        int t = 0,s=0;
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();//数组的输入
        }
        if (n == 1) System.out.println("NO");//注意单个数据的判断
        else {
            for (int i = 0; i < n; i++) {
                if(s==1)break;//计数,防止多个yes输出
                for (int j = i + 1; j < n; j++) {
                    if (a[i] == a[j]) {
                        System.out.println("YES");
                        s=1;
                        break;
                    }
                    t++;//计数
                }
            }
        }
        if (t == n) System.out.println("NO");
    }
}

7-2 摘苹果 (5 分)

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出很多苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知每个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入格式:

包括三行数据。 第一行是一个整数n,表示有n个苹果。苹果至少有一个,不超过1000个。 第二行包含n个100到200之间(包括100和200)的整数(以厘米为单位)分别表示这n个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。 第三行是一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出格式:

一个整数,表示陶陶能够摘到的苹果的数目。

输入样例:

10
100 200 150 140 129 134 167 198 200 111
110

输出样例:

5
import java.util.Scanner;

public class Zhaipingguo {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);//注意括号里的字母
        int n=sc.nextInt();
        int[]a=new int [n];
        for(int i=0;i<n;i++){
            a[i]=sc.nextInt();
        }
        int m= sc.nextInt();
        int t=0;
        for (int i=0;i<n;i++){
           if(m>=(a[i]-30))t++;
        }
        System.out.println(t);
    }
}

7-3 jmu-Java-01入门-取数字浮点数 (2 分)

本题目要求读入若干以回车结束的字符串表示的整数或者浮点数,然后将每个数中的所有数字全部加总求和。

输入格式:

每行一个整数或者浮点数。保证在浮点数范围内。

输出格式:

整数或者浮点数中的数字之和。题目保证和在整型范围内。

输入样例:

-123.01
234

输出样例:

7
9

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while (true){
            String s = sc.nextLine();
            char[] chars = s.toCharArray();
            int sum=0;
            for (int i=0;i<chars.length;i++){
                if (chars[i]=='-'||chars[i]=='+'||chars[i]=='.') {
 
                }else {
                    //计算char类型大小时,转int时需要-‘0’或者-48
                    int tmp=Integer.valueOf(chars[i])-48;                                            
                    sum+=tmp;
                }
            }
            System.out.println(sum);
        }
 
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值