数组是Java中非常重要的一个数据结构,能够解决大量数据的存储问题。数组作为同一种数据类型的集合,其实数组就是一个容器。下面我们来看看在Java开发中我们经常用到的10个Java数组方法。
将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串;
可以指定一个可选的字符串在生成的字符串中来分隔数组的各个元素,默认为逗号。
var a = [1,2,3,4]
console.log(a.join()); // "1,2,3,4"
console.log(a.join(""); // "1234"
console.log(a.join(" ")); // "1 2 3 4"
console.log(a.join("-")); // "1-2-3-4"
将数组中的元素倒叙排序,返回逆序的数据;
不重新生成数组,而是在原先数组的基础上进行重新排列。
var a = ['a','b','c','d']
console.log(a.reverse()); // ["d", "c", "b", "a"]
将数组中的元素排序并返回排序后的数组(按升序);
当不带参数调用sort时,数组元素以字母表的顺序排序。
var a = ['aa', 'dd', 'bb', 'cc']
console.log(a.sort()); // ["aa", "bb", "cc", "dd"]
var a = [20,10,5,2,3,4]
console.log(a.sort()); // [10,2,20,3,4,5] ???? 没有进行排序???
这种情况是为什么呢?
原因:[在排序的时候,sort方法会去调用数组每一项的toString方法,不管数组元素是什么类型,都将转成字符串进行比较]
可以通过以下方式来解决上述问题
var a = [20,10,5,2,3,4]
function sequence(a,b){
5 return a - b;
6 }
7 console.log(arr.sort(sequence)); // [2,3,4,5,10,20]
//[总结]:
// A.若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
// B.若 a 等于 b,则返回 0。
// C.若 a 大于 b,则返回一个大于 0 的值
连接两个或多个数组;
返回一个新的数组,不改变原数组。
var a = ['a','b']
console.log(a.concat([3,4,5])) // ["a", "b", 3, 4, 5]
console.log(a) // ['a','b']
push(): 在数组末尾添加元素,返回数组长度,会改变原数组;
pop(): 删除数组最后一项,返回删除的元素,会改变原数组。
var a = ['a','b']
console.log(a.push('c')) // 3 返回数组长度
console.log(a) // ['a','b','c']
console.log(a.pop()) // 'c' 返回末尾删除的元素
console.log(a) // ['a','b']
shift(): 删除数组的第一项,返回删除元素的值,会改变原数组;
unshift(): 在数组第一项前面添加元素,返回添加后数组长度,会改变原数组。
var a = ['a','b']
console.log(a.shift()) // 'a' 返回删除第一项元素
console.log(a) // ['b','c']
console.log(a.unshift()) // 3 返回添加元素后数组长度
console.log(a) // ['a','b','c']
var a = []
console.log(a.shift()) // undefined 当数组为空时,返回undefined
返回数组中指定范围(下标)的数组元素组成的新数组;
可以接受1或2个参数;
1个参数表示的时数组的当前位置开始一直到数组末尾的所有项;
2个参数则表示从起始位置至结束位置之间的所有项,但不包含结束位置项;
不改变原数组。
var a = [1,3,5,7,9]
console.log(a.slice(2)) // [5,7,9] 从下标2开始一直截取到最后
console.log(a) // [1,3,5,7,9]
console.log(a.slice(2,4)) [5,7] // 从下标2开始截取到下标4的元素,不包含下标为4的值
console.log(a.slice()) // [1,3,5,7,9]
console.log(a.slice(1,-2)) // [3,5] 终止下标为负数,出现负数时,将负数加上数组长度的值来替换该位置的数(1,3)
console.log(a.slice(-4,-1)) // [3,5,7] 两个值都为负数时,都加上数组长度值(1,4)
可以实现数组的插入、删除和替换;
2个参数时,可以作删除操作,分别表示要删除数组第一个元素的位置和项数;
3个参数时,可以做插入操作,分别表示起始位置、删除的项数(0)、插入的项;
3个参数,可以作替换操作,分别表示起始位置、删除的项数、插入的项;
改变原数组。
var a = [1,3,5,7,9]
console.log(a.splice(1,3)) // [3,5,7]
console.log(a) // [1,9]
var a = [1,3,5,7,9]
console.log(a.splice(1,0,2,3)) // [1,2,3,3,5,7,9]
var a = [1,3,5,7,9]
console.log(a.splice(1,2,2,3) // [1,2,3,7,9]
indexOf(): 接受两个参数,第一个表示要查找的元素,第二个表示起点位置索引,从数组的首位向后找,返回元素下标;
lastIndexOf(): 接受两个参数,第一个表示要查找的元素,第二个表示起点位置索引,从数组末尾向前找,返回元素下标。
var a = [1,3,5,7,9]
console.log(a.indexOf(9)) // 4
console.log(a.lastIndexOf(9)) // 4
var a = [1,3,3,5,7,7,9]
console.log(a.indexOf(3)) // 1 默认从前向后找
console.log(a.lastIndexOf(3)) // 2 默认从后向前找
对数组进行遍历循环
var arr = [1,3,5,7,9];
arr.forEach(function(item, index, arr){
console.log(item + '-' + index + '-' + (arr === arr));
});
// 1-0-true 3-1-true 5-2-true 7-3-true 9-4-true
// item表示数组每项的值,index表示下标,arr原数组
以上就是动力节点在线的视频课程中的常用的Java数组方法,当然,这只是一部分的数组方法,想要了解更多的Java数组方法可以去观看详细的视频讲解。
代码小兵57603-29 17:54
代码小兵69606-07 17:03
代码小兵22104-13 18:12
代码小兵22104-20 20:22