Java数组以及数组的遍历和排序算法

慈云数据 2023-03-15 行业资讯 904 30

数组(Array) 定义:同一类型数据的集合。

数组按用途可分为一维数组、二维数组和多维数组。

1、数组的定义:

在Java中,关键字new用于创建数组对象,在声明数组的同时分配内存空间。 定义数组的三种方式:

方法一(推荐,可以更好的指明数组类型)

type[] 变量名 = new type[数组中元素的个数];

例如:

int[] a = new int[10];

数组名,即引用a,指向数组元素的首地址。

方法二(同C语言

类型变量名[] = 新类型[数组中元素的个数];

喜欢:

int a[] = new int[10];

方法三:定义时直接初始化

type[] 变量名 = new type[]{逗号分隔的初始化值};

其中new type[]可以省略,所以有两种:

int[] a = {1,2,3,4};

int[] a = new int[]{1,2,3,4};

上面的int[] a = new int[]{1,2,3,4}中java string转list集合,list集合转成数组,第二个方括号中不能加上数组的长度,因为元素个数是由后面大括号的内容决定的大括号。

数组的元素通过索引访问。 数组索引从0开始,所以索引值是从0到array.-1(array.是数组的长度,上例中a是数组)。

2.数组操作

① 作业:

以下语句首先声明一个数组变量,然后创建一个包含 10 个该类型元素的数组,并将其引用分配给该变量。

班级 {

void main([] args){

// 数组大小

= 10;

// 定义数组

[] = 新的 [尺寸];

[0] = 5.6;

[1] = 4.5;

[2] = 3.3;

[3] = 13.2;

[4] = 4.0;

[5] = 34.33;

[6] = 34.0;

[7] = 45.45;

[8] = 99.993;

[9] = 11123;

// 计算所有元素的总和

总计 = 0;

for(inti = 0; i < size; i++){

总计 += [i];

}

.out.("总和为:" + total);

}

}

下图描述了数组。 这里数组中有 10 个元素,下标从 0 到 9。

java list转string_java string转list集合,list集合转成数组_java字符串转list集合

②循环数组(遍历):

数组的元素类型和数组的大小是确定的,所以在处理数组元素时,我们通常使用基本的循环或循环。

使用基本循环创建、初始化和操作数组:

班级 {

void main([] args){

[] = {1.9, 2.9, 3.4, 3.5};

// 打印所有数组元素

for(inti = 0; i < .; i++){

.out.([i] + "");

}

// 计算所有元素的总和

= 0;

for(inti = 0; i < .; i++){

总计 += [i];

}

.out.("总计为" + 总计);

// 找到最大的元素

= [0];

for(inti = 1; i < .; i++){

如果([i] > 最大值){

最大值 = [i];

}

}

.out.("最大值为" + 最大值);

}

}

对于循环,可以在没有下标的情况下迭代数组:

班级 {

void main([] args){

[] = {1.9, 2.9, 3.4, 3.5};

// 打印所有数组元素

为了( : ){

。出去。();

}

}

}

③数组排序(介绍几种常用的排序方法):

1、冒泡排序(依次比较两个相似的数,提取最大值或最小值进行排序)

空白 () {

int a[]={32,87,3,58,12,70,20,8,62,17};

整数 n = a.;

对于 (int i = 0; i < n - 1; i++) {

对于 (int j = 0; j < n - 1; j++) {

如果 (a[j] > a[j + 1]) {

int temp = a[j];

a[j] = a[j + 1];

a[j + 1] = 温度;

}

}

}

对于(int c:a){

.out.(c);

}

}

2、选择排序(每次比较第一个数和后面的数,保存最大值的下标java string转list集合,list集合转成数组,然后调换位置进行排序)

空白 () {

int a[]={32,87,3,58,12,70,20,8,62,17};

整数 n = a.;

对于 (int i = 0; i < n - 1; i++) {

整数索引=我;

对于 (int j = i+1; j < n ; j++) {

如果(a[索引] < a[j]){

指数 = j;

}

}

如果(索引!=我){

int temp = a[i];

a[i] = a[索引];

a[索引] = 温度;

}

}

对于(int c:a){

.out.(c);

}

}

3.插入排序(将当前待排序的元素插入到一个已排序的列表中。一个很形象的例子是右手抓起一张扑克牌,插入到左手拿着的已排序的扑克牌中。插入的最差运行时间sort是O(n2),所以不是最优排序算法。它的特点是简单,不需要额外的存储空间,在元素少的时候效果很好)

空白 () {

int a[]={32,87,3,58,12,70,20,8,62,17};

整数 n = a.;

对于 (int i = 1; i < n; i++) {

//将a[i]插入a[0:i-1]

int t = a[i];

诠释j;

对于 (j = i - 1; j >= 0 && t < a[j]; j--) {

a[j + 1] = a[j];

}

a[j + 1] = t;

}

对于(int c:a){

.out.(c);

}

}

4.另一种方式是直接使用.sort()方法进行排序

无效排序(){

int a[]={32,87,3,58,12,70,20,8,62,17};

排序(一);

对于(int c:a){

.out.(c);

}

}

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon