java-数组 (三)


前言

程序=算法+数据结构
算法:解决程序的流程步骤(顺序、分支、循环)
数据结构:将数据按照某种特定的结构来存储
设计良好的数据结构会导致良好的算法。

一、数组结构

数组是最简单的数据结构。
数组:存放同一种类型数据的集合,在内存里面是开辟一块连续的区域。
例如:

int[]  array = new int[4];

1、存放整数类型的数组
2、长度是4
3、只能存放int类型
数组的访问:数组名[下标]
在这里插入图片描述

二、数组组成

元素类型[] 数组名 = new 元素类型[长度];
例如:

double[] array = new  double[4];

数组最重要操作就是遍历。
只要能遍历所有元素:求最大值、最小值、排序。

数组定义的方式
1、在定义的时候直接赋值

int[] array = {32,5,7,87};
int[] array = new int[]{32,5,7,87};

2、先定义后赋值

int[] array = new int[4];
array[0] = 34;

3、控制台输入时使用scanner

scanner .next()不能读空格
nextline() 可以读空格

   Scanner scanner = new Scanner(System.in);
   
   String str = scanner.nextLine();// "abcba"
   
   System.out.println(str);

三、样例

样例1:冒泡排序
数组的排序:冒泡排序
int[] array = {40, 17, 21, 1}; // 1, 17,21,40
第一轮:40冒到最右边
17,40,21,1
17,21,40,1
17,21,1,40 ------- 40 冒出来
第二轮:21冒出来
17,21,1,40
17,1,21,40 ------- 21冒出来
第三轮:17冒出来
1,17,21,40 ------- 17冒出来

4个数只要比较3轮就可以,剩下那个数不要要排序就是最小的
第一轮:比较3次
第二轮:比较2次
第三轮:比较1次

i+j =4=array.length
j=array.length-i

for循环中
i是几轮
j是下标

 //冒泡排序
    @Test
    public void testBubble() {

        int[] array={40,17,21,1};
        for (int i = 1; i <=array.length-1 ; i++) {
            for (int j = 0; j < array.length-i; j++) {
                if (array[j]>array[j+1]){
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

注:BigDecimal

//  计算机无法精确的表示小数
    @Test
    public void test3(){
        System.out.println(1.3-1.0);
    }//0.30000000000000004

由于IDE无法精确的表示小数所以可以用BigDecimal-----精确计算小数

总结

 数组⽤的很少,但是⼀定会⽤,⽽且数组的相关逻辑⽐较麻烦;
 把数组的排序和转置要弄明⽩;
 ⼀切以⼀维数组为主,要明⽩数组定义语法和内存关系(对象⼀致);
 对象数组的定义语法。对象数组=多个对象;
 数组有⼀个最⼤的天⽣短板;⻓度固定,限制数组的开发中的出现 ;
 数组排序:java.util.Arrays.sort(数组名称)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值