java与js数组定义及常用方法
java数组定义及常用方法
java数组定义
数组是一组数据的集合,数组中的每个数据被称为元素。在java中,数组也是对象。数组中的元素可以是任意类型(基本类型和引用类型),但同一个数组里只能存放类型相同的元素。
方法1,方法2与方法3属于直接赋值。常用方法1与方法3。
方法4位先定义数组长度后,对数组里的内容依次赋值
//以int类型数组举例
int[] a = new int[] {1,2,3}; //方法1
int b[] = new int[] {1,2,3}; //方法2
int[] a2 = {1,2,3}; //方法3
int[] c = new int[3]; //方法4
c[0]=1;
c[1]=2;
c[2]=3;
java数组常用方法
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用。
本人比较常用的几个方法
1.Arrays.binarySearch(int[] a, int key)
使用二叉搜索算法搜索指定的int数组的指定值。
2.Arrays.copyOf(int[] original, int newLength)
复制指定的original数组,用零截取或填充(如有必要),以便复制具有指定的长度newLength。
3.Arrays.copyOfRange(int[] original, int from, int to)
将指定数组original的指定范围from-to(闭开区间,数值取得到from取不到to)复制到新数组中。
4.Arrays.equals(int[] a, int[] a2)
如果两个指定的int数组彼此 相等 ,则返回 true 。
5.Arrays.sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
根据指定的比较器引发的顺序对指定的对象数组的指定范围进行排序。
6.Arrays.toString(int[] a)
返回指定数组的内容的字符串表示形式。
7.Arrays.asList(T… a)
返回由指定数组支持的固定大小的ArrayList集合(我们希望将一个数组Array对象转换成列表ArrayList对象时,我们会使用Arrays.asList()方法,其实这并不是真正意义上的转成ArrayList对象了。因为该类的大小(size)是固定的。 Arrays.asList确实会返回一个ArrayList对象,但是该类是Arrays类 中一个私有静态内部类,而不是常见的java.util.ArrayList类。这个java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,使用后会生成一个新的数组额不是一个list集合)。
int[] a = new int[] {1,2,3};
int b[] = new int[] {1,2,3};
List<int[]> asList = Arrays.asList(a);
int[] set = asList.set(0, a);//这么写没有什么实际意义,只是证实一下以上推论
**8.System中有一个方法可以拷贝数组将指定源数组中的数组从指定位置复制到目标数组的指定位置。System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) **
/** Object src : 原数组
int srcPos : 从元数据的起始位置开始
Object dest : 目标数组
int destPos : 目标数组的开始起始位置
int length : 要copy的数组的长度
问题:如何实现数组添加元素
*/
int[] a = new int[] {1,2,3};
int b[] = new int[] {1,2,4};
int[] c=new int[a.length+b.length];
System.out.println(Arrays.toString(c));//[0, 0, 0, 0, 0, 0]
System.arraycopy(a, 0, c, 0, a.length);
System.out.println(Arrays.toString(c));//[1, 2, 3, 0, 0, 0]
System.arraycopy(b,0 , c, a.length, b.length);
System.out.println(Arrays.toString(c));//[1, 2, 3, 1, 2, 4]
js数组定义及常用方法
js数组定义
相较于java强数据类型语言,js为弱数据类型语言。数组定义与复制相对随意
var cars = ["1", "abc", {id:1,name:"ch"},[1,2,3]];
cars[5]="bob";
conlose.log(cars);//["1", "abc", {id:1,name:"ch"},[1,2,3],"bob"]
js数组常用方法
1. arr.push() 从后面添加元素,返回值为添加完后的数组的长度
let arr = [1,2,3,4,5]
console.log(arr.push(5)) // 6
console.log(arr) // [1,2,3,4,5,5]
2. arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素
let arr = [1,2,3,4,5]
console.log(arr.pop()) // 5
console.log(arr) //[1,2,3,4]
3. arr.shift() 从前面删除元素,只能删除一个 返回值是删除的元素
let arr = [1,2,3,4,5]
console.log(arr.shift()) // 1
console.log(arr) // [2,3,4,5]
4 .arr.unshift() 从前面添加元素, 返回值是添加完后的数组的长度
let arr = [1,2,3,4,5]
console.log(arr.unshift(2)) // 6
console.log(arr) //[2,1,2,3,4,5
5. arr.splice(i,n) 删除从i(索引值)开始之后的那个元素。返回值是删除的元素
let arr = [1,2,3,4,5]
console.log(arr.unshift(2)) // 6
console.log(arr) //[2,1,2,3,4,5]
6. arr.forEach(callback) 遍历数组,无return 即使有return,也不会返回任何值,并且会影响原来的数组
callback的参数: value --当前索引的值
index --索引
array --原数组 6.
let arr = [1,2,3,4,5]
arr.forEach( (value,index,array)=>{
console.log(`value:${value} index:${index} array:${array}`)
})
// value:1 index:0 array:1,2,3,4,5
// value:2 index:1 array:1,2,3,4,5
// value:3 index:2 array:1,2,3,4,5
// value:4 index:3 array:1,2,3,4,5
// value:5 index:4 array:1,2,3,4,5
let arr = [1,2,3,4,5]
arr.forEach( (value,index,array)=>{
value = value * 2
console.log(`value:${value} index:${index} array:${array}`)
})
console.log(arr)
// value:2 index:0 array:1,2,3,4,5
// value:4 index:1 array:1,2,3,4,5
// value:6 index:2 array:1,2,3,4,5
// value:8 index:3 array:1,2,3,4,5
// value:10 index:4 array:1,2,3,4,5
// [1, 2, 3, 4, 5]
var arr = [1,2,3,4];
var res = arr.forEach((item,index,arr)=>{
arr[index] = item * 2;
return arr
})
console.log(arr); // [2,4,6,8]
console.log(res); // undefined
7. arr.map(callback) 映射数组(遍历数组),有return 返回一个新数组 。
callback的参数: value --当前索引的值
index --索引
array --原数组
let arr = [1,2,3,4,5]
arr.map( (value,index,array)=>{
value = value * 2
console.log(`value:${value} index:${index} array:${array}`)
})
console.log(arr)
var arr1 = [1,2,3,4];
var res1 = arr1.map((item,index,arr)=>{
item = item * 3;
return item;
})
console.log(arr1); // [1,2,3,4]
console.log(res1); // [3,6,9,12]
arr.forEach()和arr.map()的区别
1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
2. arr.forEach() 没有return arr.map() 有return
8. arr.filter(callback) 过滤数组,返回一个满足要求的数组
callback的参数: value --当前索引的值
index --索引
let arr = [1,2,3,4,5]
let arr1 = arr.filter( (value, index) => value<3)
console.log(arr1) // [1, 2]
总结及参考文档
以上为自己常用的java或js数组方法
参考文档:java:java api
js:https://www.cnblogs.com/sqh17/p/8529401.html 这片博客里对js数组的一些方法基本 全部包括。