2019-4-25 数组操作方法和练习

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//数组的基本操作
//1、创建数组
var arr = [1,3,5,7];
var arr1 = new Array(11,22,33);
var arr2 = Array(111,222);
//2、访问数组成员;数组[索引] 下表从0开始
//console.log(arr[0]);
//3、修改数组,修改某个索引位置的数据
arr[1] = "heheheh";
console.log(arr[1]);

//4、添加数据到数组,会修改数组的长度
arr[4] = "我是新增的数据";

//5、如果需要往数组最后面添加数据,那么索引就是当前数组的长度
arr[arr.length] = "我是通过arr.length来添加的数据";

//6、访问数组的长度; 数组.length
console.log(arr.length);
console.log(arr[0]);

arr.length = 4;//修改数据的长度 长度大于该数据的会被删除;
console.log(arr.length);

arr1.length = 0;//设置为0,就是清空数组的数据;

delete arr2[1];//删除某个数据的索引 delete 数组名[索引];
//delete 删除的是数组索引对应数据赋值为undefined,该数组的长度没有变化
console.log("arr2数组的长度为:"+arr2.length);



//7、遍历数组(迭代数组)
//第一种方法
//创建又一个数组
var arr3 = ["hehe","hehehehehe",1,5,659,"zhutou"];

for (var i=0;i<arr3.length;i++) {
var value = arr3[i];// i 是数组的索引 arr3[i]表示获取数组的索引
console.log(value);
}

//第二种方法

var arr4 = ["1","22",1,5,659,"888"];
for (var i in arr4) {
// var v= arr4[i];
// console.log(v);
document.write(arr4[i]+" ");
}


/*
* 数组为:[1,3,5,7,24,32,25,48]
1.求数组中数字奇数的个数和偶数的 "个数"
2.求出上面数组的平均值
*/
var arr5 = [1,3,5,7,24,32,25,48];

var n1 = 0;//记录偶数的个数
var n2 = 0;//记录奇数的个数
var sum = 0;//定义一个变量,存储和;

//遍历数组
for (var i=0;i<arr5.length;i++) {
var vv = arr5[i]; //获取所有数组的数据
sum += vv; //获取所有数组的数据进行累加
if (vv%2==0) {
n1++;
}else{
n2++;
}
}
console.log(n1,n2,sum/arr5.length);


//练习二 设计一个数组的最大值的

var arr7 = [-10,52,999,-69,0,85];
//定义一个数组 默认最大值是第一个元素
var maxsum = arr7[0];
//i 从1开始,因为我们默认最大值就是第一个元素,从0开始比较没有意义;
//遍历数组
for (var i=1;i<arr7.length;i++) {
var v1 = arr7[i];
if (v1>maxsum) {// 把数组中数与max比较,如果v大于max,证明v是最大值;
maxsum = v1;//把v赋值给max;
}
}
console.log("最大值是:"+maxsum);


//求数组的最小值 arr = [23,3,5,7,243,1,25,48];
var minNum = [23,3,5,7,243,1,25,48];
//假设一个数据为最小值
var minN = minNum[0];
for (var i = 0;i<minNum.length;i++) {
var mN = minNum[i];
if (mN<minN) {//mN时数组的数据,如果小于我们假设的值,说明第一次的mN是最小值,
minN = mN;
}
}
console.log("最小时"+minN);

var aaa = [-77,-10,-99,-30];

//定义一个最大值,默认先假设最大值是第一个元素;
var max = aaa[0];

//i 从1开始,因为我们默认最大值就是第一个元素,从0开始比较没有意义;
for(var i=1;i<aaa.length;i++){
var v = aaa[i];
if(v>max){ // 把数组中数与max比较,如果v大于max,证明v是最大值;
max = v; //把v赋值给max;
}
}
console.log(max);

//定义一个数组,输入9个任意的整数,求该数组中奇数的个数和奇数的平均值。

var nineNum = [11,22,33,14,25,36,96,-78,85];
//定义一个变量记录奇数 的个数和奇数和
var a1 = 0;
var a1Num = 0;
//遍历数组
for (var i = 0;i<nineNum.length;i++) {
var newNum = nineNum[i];//遍历出数组的数据
//通过if语句判断是否是奇数
// if (nineNum[i]%2==1) {
// a1++;
// a1Num += nineNum[i];
//
// }
if (!(newNum%2==0)) {
a1++;
a1Num += newNum;

}

}
//a1Num += a1;
console.log("奇数的个数为:"+a1);
console.log("奇数的平均值为:"+a1Num/a1);

//10、二维数组:
//二维数组本质上是以数组作为数组元素的数组

//创建一个二维数组
var newArr = [
[1,2,3],
[4,5,6],
[7,8,9]
]
console.log(newArr[0][0]);//获取内部数组的第一个元素
console.log(newArr[1][1]);//获取内部数组的元素

//遍历二维数组
for (var i=0;i<newArr.length;i++) {
var maxNew = newArr[i];
//遍历的是大数组,还剩下小数组 需要再次遍历
for (var j=0;j<maxNew.length;j++) {
var minNew = maxNew[j];
console.log(minNew);
}
}

//通过for in方式遍历二维数组

for (var i in newArr) {
var m1 = newArr[i];
for (var j in m1) {
var m2 = m1[j];
console.log(m2);
}
}


//二维数组小练习
//创建一个二维数组
var group = [
[80,92,92],
[61,65,71],
[59,1199,70],
[85,87,90],
[76,77,88]
];
//找出以下数组中最大值;
//最大值对应的索引值 ,需要定义两个索引记录;
var maxRow = 0;
var minCol = 0;
var max = group[0][0];//默认第一个元素为最大值
//遍历二维数组
for (var i=0;i<group.length;i++) {
var v1 = group[i];
//再次遍历
for (var j = 0;j<v1.length;j++) {
var v2 = v1[j];//遍历完所有数据
//进行if判断
if (v2>max) {
max = v2;
maxRow = i;
minCol = j;
}
}
}
console.log(max,maxRow,minCol);



/**
* (二维数组,逻辑,偏难)//求该数组的平均值,最大值,最小值
*
var arr = [
[12,43,23,123],
[54,54,23,64],
[86,67,34,23]
];


求该数组的平均值; 所有数和/所有数的个数;
所有数和:获取数组中所有数,相加保存;
所有数的个数:其实就是二维数组中内部那个数组的个数相加;

最大值;
最小值;
*/
//定义一个数组
var aaa = [
[12,43,23,123],
[54,54,23,64],
[86,67,34,23]
];
//定义一个变量存储所有数的和
var aaaSum = 0;
//定义一个变量存储所有数的个数
var count = 0;

var maxA = aaa[0][0];
var minA = aaa[0][0];

//遍历数组;
for (var i=0;i<aaa.length;i++) {
var aa1 = aaa[i];
//获取每一个数组的长度相加
count += aa1.length;
//再次遍历
for (var j=0;j<aa1.length;j++) {
var aa2 = aa1[j];
//将获取的数据累加
aaaSum += aa2;
//使用if判断最大值、最小值
if (aa2>maxA) {
maxA = aa2;
} else if(aa2<minA){
minA = aa2;
}
}
}
console.log(aaaSum/count);
console.log(maxA,minA);
</script>
</body>
</html>

转载于:https://www.cnblogs.com/webJian/p/10767463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中的Arrays类提供了许多操作数组的方法,其中包括对数组进行排序的方法。使用Arrays.sort()方法可以对数组进行排序,该方法可以对任何类型的数组进行排序,包括基本类型和对象类型。 例如,对一个整型数组进行排序,可以使用以下代码: int[] arr = {5, 2, 8, 1, 9}; Arrays.sort(arr); 排序后,数组arr的值为{1, 2, 5, 8, 9}。 如果要对一个字符串数组进行排序,可以使用以下代码: String[] arr = {"apple", "banana", "orange", "pear"}; Arrays.sort(arr); 排序后,数组arr的值为{"apple", "banana", "orange", "pear"}。 需要注意的是,Arrays.sort()方法会改变原始数组的顺序,如果需要保留原始数组的顺序,可以先将数组复制一份再进行排序。 ### 回答2: Java数组是一种很常见的数据类型,在实际开发中使用频率也很高。在Java中,对于数组的操作一般使用Arrays类来完成,该类提供了很多实用的方法,比如数组排序等。 数组排序是对数组中的元素进行排序的过程,可以按照升序或者降序排列。Java中使用Arrays类提供的sort方法对数组进行排序,方法的原型如下: public static void sort(数组名); 其中,数组名代表需要排序的数组。如果数组中的元素为基本数据类型(如int、double等),则默认按照升序排列;如果数组中的元素为字符串类型,则按照字典序升序排列。 下面是一个示例代码,演示如何使用Arrays类对数组进行排序: ``` import java.util.Arrays; public class ArraySortDemo { public static void main(String[] args) { int[] nums = {3, 7, 1, 9, 5}; System.out.println("排序前:" + Arrays.toString(nums)); Arrays.sort(nums); System.out.println("排序后:" + Arrays.toString(nums)); } } ``` 代码执行结果如下: ``` 排序前:[3, 7, 1, 9, 5] 排序后:[1, 3, 5, 7, 9] ``` 可以看到,排序前的数组为3、7、1、9、5,排序后的数组为1、3、5、7、9,按照升序排列。 除了按照升序排列之外,还可以按照降序排列。可以使用Arrays类的sort方法,同时指定排序算法和排序方式,如下所示: ``` import java.util.Arrays; import java.util.Collections; public class ArraySortDemo { public static void main(String[] args) { Integer[] nums = {3, 7, 1, 9, 5}; System.out.println("排序前:" + Arrays.toString(nums)); Arrays.sort(nums, Collections.reverseOrder()); System.out.println("排序后:" + Arrays.toString(nums)); } } ``` 代码执行结果如下: ``` 排序前:[3, 7, 1, 9, 5] 排序后:[9, 7, 5, 3, 1] ``` 可以看到,本次使用了Collections类提供的reverseOrder方法,将排序方式指定为降序。 综上所述,通过Arrays类提供的sort方法,我们可以很轻松地对数组进行排序。但是需要注意的是,如果数组中的元素为自定义类型,需要在自定义类型中实现Comparable接口或者Comparator接口,并重写compareTo方法或compare方法,才能实现对数组的排序。 ### 回答3: Java中自带了一个Arrays类,其中包含了对数组排序的方法。Arrays类中的sort()方法可以以升序或降序的形式对数组进行排序。下面就介绍一下如何使用sort()方法对数组进行排序。 首先,我们创建一个数组,然后使用sort()方法对其进行排序。 ``` int[] arr = {10, 5, 8, 20, 13}; Arrays.sort(arr); ``` 上面的代码会将数组arr按照从小到大的顺序进行排序。我们可以输出一下排序后的结果。 ``` for (int i : arr) { System.out.print(i + " "); } ``` 运行上面的代码可以看到输出结果为:5 8 10 13 20。 除了按照从小到大的顺序排序外,sort()方法还可以按照从大到小的顺序对数组进行排序。我们只需要添加一个比较器即可。 ``` int[] arr2 = {10, 5, 8, 20, 13}; Arrays.sort(arr2, Collections.reverseOrder()); ``` 上面的代码会将数组arr2按照从大到小的顺序进行排序。我们同样输出一下排序后的结果。 ``` for (int i : arr2) { System.out.print(i + " "); } ``` 运行上面的代码可以看到输出结果为:20 13 10 8 5。 除了对int类型的数组进行排序,sort()方法也支持对其他类型的数组进行排序,比如String、Double等。 总的来说,使用Arrays类中的sort()方法可以非常方便地对数组进行排序,提高我们的开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值