Java基础之数组及其排序,类的使用

第一部分:数组

数组是指一组数据的集合,数组中的每个数据称为元素。

1.1:数组中可以存放哪些内容

数组中可以存放任意类型的元素,但是一个数组只能存放类型相同的元素。

1.2:数组的长度

1,数组在创建的时候就需要指定长度
2,数组的长度一经确定就不能修改

1.3:数组的下标

1,为了数组中每个数据的存取方法特意给数组的每个元素分配下标(自动分配)
2,数组的下标是从 0 开始
3,数组想下标一定是小于数组长度的
问题:数组下标的最大值是多少?
答:数组长度-1

1.4:数组的创建方式

语法:
数据类型[] 变量名 = new 数据类型[数组的长度];
eg:
int[] ages = new int[10];
解释: 代表声明了一个整型数组,变量名为ages,并且给变量ages的赋值,赋了一个新建出来10个长度的数组。
注意:新建数组中的每个元素都会有默认值。

数据类型[] 变量名 = {值,值,值…}
eg: boolean[] genders = {true,false,true,false};
解释:声明了一个boolean类中的数组,变量名为 genders ,并且给变量genders赋值,把4个数据赋值给了变量名为genders的数组。
注意: 这时候 genders 数组的长度 已经 固定,genders 数组的每个元素 也有值了。

数据类型[] 变量名 = new 数据类型[]{值,值,值…}
eg:String[] args = new String[]{“tom”,“lisi”,“wangwu”}
解释: 声明一个字符串类型的数组,并且赋值,新建了一个数组,这个新数组是有初始化值的。把新数组赋值给了args
注意: 这个时候args数组的长度已经固定了

1.5:数组的赋值方式

1,创建的时候赋值:
int[] arg = new int[]{1,2,4,5,7,8,2,3,4}
2,创建的时候赋值:
int[] arg = {1,2,3,4,5,6,2,3,4};
3,使用下标赋值 : 最常用
eg:
int[] arg = new int[10];//没有赋值的10单位空数组
arg[0] = 189;//代表把数据189放到了arg数组的0号位置
arg[5] = 12;//代表把数据12放到了arg数组的0号位置

注意:新建立的数组对每个值会默认初始化
byte/short/int/long      0
float           0.0f
double          0.0d
引用数据类型       null
char           ‘\u0000’
boolean          false

1.6:数组的取值方式

使用下标取值:
int[] args = new int[]{22,3,4,555,62,86};
1,取数组args下标为3的值
int age = args[3];//args[3]就是获取了3号下标的值,这里把它赋值为age是为了后期好使用。
2,取数组args下标为9的值
int tomage = args[9];
3,去数组args下标为10的值
int lisiage = args[10];
为什么这个下标为10的值取不到?

1.7:数组的遍历输出

使用for遍历输出+下标

1.8:多维数组

在数组的每个元素上的数据 又是一个数组,这样就得到了一个多维数组。

1,多维数组的声明.
数据类型[ ][ ] args = new 数据类型[数组的长度][ ];

数据类型[ ][ ] args = {
{“mike”,“jane”},
{“Mary”},
{“Tom”,“Jerry”}
}
2,二维数组的赋值:
int[ ][ ] args = new int[5][ ];
args[0] = new int[3];
args[1] = new int[2];
args[3] = new int[2];
args[0][0] = 1;
args[0][1] = 1;
args[4][1] = 1;
args[4][2] = 2;
3,二维数组的取值:
int age = args[0][0];

第二部分:数组拷贝…系统类System的使用

java.lang.System
System.arraycopy(…);
数组的长度一旦确定之后便不能调整,我们可以通过复制数组的内容变通实现改变数组长度。在System类中提供一个辅助的
arraycopy方法提供复制数组内容的功能:
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

参数1,需要被复制的目标数组
参数2,从这个数组的那个一个位置开始复制
参数3,需要把数据复制到的另外的那一个新的数组对象
参数4,复制到新数组里面哪个位置(从这个位置开始算)
参数5,复制的目标数组的长度

第三部分:Arrays的使用

Arrays.sort();排序
Arrays.toString();输出数组中的元素

第四部分:随机取数组中的某下标的值。

java.lang.Math.random();
java.util.Random;
Random r = new Random();
r.nextInt(10);

package com.briup.ch5;
import java.util.*;
public class Test2{
        public static void main(String[] args){
        Random r = new Random();
        System.out.println(r.nextInt(20));
	}
}

第五部分:数组的排序

冒泡排序:

package com.briup.ch5;
import java.util.*;
public class Test4{
public static void main(String[] args) {
        int []arr = new int[]{22,30,54,1,43,24};
        for(int i =0;i<arr.length-1;i++) {
            for(int j=0;j<arr.length-i-1;j++) {//-1为了防止溢出
                if(arr[j]>arr[j+1]) {
                    int temp = arr[j];

                    arr[j]=arr[j+1];

                    arr[j+1]=temp;
           			 }
           		 }
        	}
        System.out.println(Arrays.toString(arr));
    }
}

第六部分:可变参数

语法:String… args
注意:可变参数只能是参数列表的最后一个。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值