三. 数组总结
来源:互联网 发布:linux select timeout 编辑:程序博客网 时间:2024/05/19 08:41
一.数组的定义格式:
数据类型数组名[] = new数组类型 [数组个数];
或
数据类型[]数组名 = new数组类型 [数组个数];
例如:
int demo[] =newint[5];
初始化方式有两种:
int demo1[] = newint[]{1, 2, 3, 4, 5};
intdemo2[] = {1, 2, 3, 4, 5};
二.数组的长度:
数组名.length;
例如:intlength = demo.length; ----->结果为5.
三.数组的内存分析
数组属于引用数据类型,所以需要用户为其分配内存空间,也就是如上所示那样创建数组。
数组变量demo中存放这些内存单元的首地址,该地址称为数组的引用,这样就可以通过索引操作这些连续的内存单元。索引是从0开始的。
例如:demo[0] = 10; demo[1] = 20;
四.多维数组
Java中采用“数组的数组”来声明多维数组。例如一个二维数组可以是是由多个一维数组组成。
例如:
int demo[] =newint[3][4];
是由3个长度为4的一维数组组成,demo[0]、demo[1]和demo[2]
另外组成多维数组的一维数组不必有相同的长度:
demo[0] =newint[5];
demo[1] = newi nt[3];
五.对象数组
即数组声明的数据类型为类,此数组即为对象数组。
例如:
Book bookArray [] =newBook[3];
bookArray[0] =newBook("Java", 10.21);
bookArray[1] =newBook("JSP", 11.3);
bookArray[2] =newBook("SSH", 10.1);
或者在开始定义时初始化:
Book bookArray[] =new Book[] {
new Book("Java", 10.21),
new Book("JSP", 11.3),
new Book("SSH", 10.1)
};
对数组的遍历,JDK1.5版本提供了for-each方式:
for(数组类型 循环变量:数组名字) {
……..
}
循环变量依次取出数组的每一个元素的值。
例如:
for(Book i : bookArray){
System.out.println(i);
}
六.操作数组类(Arrays)
java.lang.Object
|-java.util.Arrays
Arrays类是在JDK1.5后提供,主要是数组相关的操作类。
提供的方法都是static方法可以直接调用,常用的方法罗列如下:
方法
具体描述
public staticStringtoString(数据类型[] a)
返回数组a的字符串表示形式
public staticvoidsort(数据类型[] a)
对数组a进行升序排列
public staticintbinarySearch(数组类型[] a,数据类型key)
二分法查找key是否在数组a中,前提是a需要先排好序。如果相同,返回索引,否则返回一负数
Public static数组类型[]copyOf(数组类型[] original, int length)
把original数组从索引0开始的length个元素复制到一个新数组中,并返回这个数组
public static数组类型[]copyOfRange(数组类型[] original, int from, int to)
把original数组的from至to索引的元素复制到新数组中,并返回
public staticbooleanequals(数据类型[] a,数据类型[] a2)
这个方法与object类中的equals方法无关联,比较两个数组中的元素及顺序是否完全相同,相同返回true,否则false.
public static voidfill(数组类型[] a,数据类型 val)
用val值填充数组a.
示例如下:
int data[] =newint[]{49, 32, 232, 2, 10, 3};
int comData[] =newint[]{49, 2, 232, 23, 10, 3};
//把数组转化为字符串表示形式:[49, 32, 232, 2, 10, 3]
String str = Arrays.toString(data);
//升序排列:2 3 10 32 49 232
Arrays.sort(data);
//二分法查找,需要先排序,存在返回索引值,不存在返回负数
int index = Arrays.binarySearch(data, 2);
//数组copy,拷贝原数组的length个值,超过原数组长度的话,设置默认值
int cpData[] = Arrays.copyOf(data, data.length);
int cpData2[] = Arrays.copyOfRange(data, 2, 5);
//比较两个数组是否相同(元素和顺序),相同为true,不相同为false
boolean result = Arrays.equals(data, comData);
//填充数组:8 8 8 8 8
int fillData[] = newint[5];
Arrays.fill(fillData, 8);
- 三. 数组总结
- 关于数组的面试题总结(三)
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- 黑马程序员_JavaSE基础知识总结三:方法和数组
- js数组去重的三种常用方法总结
- javascript数组去重的三种常用方法总结
- javascript数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- 数组(三)
- 数组总结
- 数组总结
- 数组总结
- 数组总结
- 数组总结
- 最近心情真的是烦到爆
- 【JZOJ5081】【GDSOI2017第三轮模拟】Travel Plan
- js事件详解
- 【SSLGZ 2661】廉价最短路径
- Uboot启动的第二阶段
- 三. 数组总结
- 跟我学JavaScript--字符串对象方法具体讲解
- JZOJ 3899. 【NOIP2014模拟】逻辑的连通性
- 用PHP写APP后台
- [渗透测试]老司机奇淫渗透测试让网站给自己发管理员账号密码
- 单片机中ICP和ISP有哪些不同?
- MyBatis简介
- SyntaxError: Non-ASCII character '***' in file *** on line **,but no encoding declared;
- 【maven初识——Settings.xml解析】