java学习之路--java数组--java开发实战经典第四章
来源:互联网 发布:体彩网络销售平台 编辑:程序博客网 时间:2024/04/28 20:52
第四章:
4.1数组:
1.数组的创建:
1.数据类型[] 数组名=null;或者 数据类型 数组名 []=null;(数据的声明其实是把数组的名字存在栈内存里面)
2.数组名=new 数据类型[长度];(是堆内存中开辟一个空间,空间大小就是长度)
上面的两个步骤也可以一次完成
数据类型 数组名[]=new 数据类型[长度];
例如: int a []=new int[3];
注意:数组是引用数据类型,a保存不是数组的实体,而是数组堆内存中的参考地址
2.访问数组中的元素:
记住一点数组是通过索引来访问的,索引值是从0开始的
3.数组的静态创建
int a={1,2,3};
4.二位数组的声明与创建
数据类型 数组名[][]=new 数据类型[行的个数][列的个数]
注意:如果能通过一维数组就能解决问题,就坚决不要创建二维数组,因为创建二维数组的消耗远远大于一维数组
4.2方法
1.方法重载
方法名称相同,但是方法的参数或者个数不同
注意:这里没有讲返回值不同也是重载
2.递归
递归操作是一种特殊的调用方式,就是自己调用自己
例如求1+2+3...+100
public class SZJDTest2{
public static int test7(int sum){
if(sum==1)
return 1;
else {
return sum+test7(sum-1);
}
}
public static void main(String[] args) {
System.out.println(SZJDTest2.test7(100));
}
}
结果:
5050
注意:递归调用如果处理不好,容易造成内存的溢出,所以在使用递归时要谨慎
4.3数组的常用方法
1.排序
public void test7(){
int a []={1,6,3,4,2,9,8,0,5,7};
Arrays.sort(a);
for(int i=0;i<10;i++){
System.out.print(a[i]+"\t");
}
}
结果:
0 1 2 3 4 5 6 7 8 9
这里说明一下:数据排序可以自己写,但是我建议没有特殊要求的话,就用java自带的排序哦
2.复制
将一个数组的内容复制给另外一个数组
public void test8(){
int a[]={1,2,3,4,5};
int b[]={22,33,44,55};
String s[]={"a","b","c"};
System.arraycopy(a, 2, b, 2, 2);//参数:原数组,从第几个开始,复制到的数组,从哪里开始,复制几个(长度)
//System.arraycopy(a, 1, s, 2, 3);
for(int i=0 ,len=b.length;i<len;i++){
System.out.print(b[i]+"\t");
}
}
注意:复制的长度不能超过目标数组的长度,复制数组类型必须一致
4.4java的新特性
1.可变参数
public static void fun(int...args){
for(int i=0;i<args.length;i++){
System.out.print(args[i]+"\t");
}
}
public static void main(String[] args) {
System.out.println("不传递参数:");
fun();
System.out.println("");
System.out.println("传递一个:");
fun(1);
System.out.println("");
System.out.println("传递5个:");
fun(1,23,4,5,6);
}
2.foreach输出
为了方便数组的输出
public static void fun(int...args){
for(int i :args){
System.out.print(i+"\t");
}
}
public static void main(String[] args) {
System.out.println("不传递参数:");
fun();
System.out.println("");
System.out.println("传递一个:");
fun(1);
System.out.println("");
System.out.println("传递5个:");
fun(1,23,4,5,6);
}
4.1数组:
1.数组的创建:
1.数据类型[] 数组名=null;或者 数据类型 数组名 []=null;(数据的声明其实是把数组的名字存在栈内存里面)
2.数组名=new 数据类型[长度];(是堆内存中开辟一个空间,空间大小就是长度)
上面的两个步骤也可以一次完成
数据类型 数组名[]=new 数据类型[长度];
例如: int a []=new int[3];
注意:数组是引用数据类型,a保存不是数组的实体,而是数组堆内存中的参考地址
2.访问数组中的元素:
记住一点数组是通过索引来访问的,索引值是从0开始的
3.数组的静态创建
int a={1,2,3};
4.二位数组的声明与创建
数据类型 数组名[][]=new 数据类型[行的个数][列的个数]
注意:如果能通过一维数组就能解决问题,就坚决不要创建二维数组,因为创建二维数组的消耗远远大于一维数组
4.2方法
1.方法重载
方法名称相同,但是方法的参数或者个数不同
注意:这里没有讲返回值不同也是重载
2.递归
递归操作是一种特殊的调用方式,就是自己调用自己
例如求1+2+3...+100
public class SZJDTest2{
public static int test7(int sum){
if(sum==1)
return 1;
else {
return sum+test7(sum-1);
}
}
public static void main(String[] args) {
System.out.println(SZJDTest2.test7(100));
}
}
结果:
5050
注意:递归调用如果处理不好,容易造成内存的溢出,所以在使用递归时要谨慎
4.3数组的常用方法
1.排序
public void test7(){
int a []={1,6,3,4,2,9,8,0,5,7};
Arrays.sort(a);
for(int i=0;i<10;i++){
System.out.print(a[i]+"\t");
}
}
结果:
0 1 2 3 4 5 6 7 8 9
这里说明一下:数据排序可以自己写,但是我建议没有特殊要求的话,就用java自带的排序哦
2.复制
将一个数组的内容复制给另外一个数组
public void test8(){
int a[]={1,2,3,4,5};
int b[]={22,33,44,55};
String s[]={"a","b","c"};
System.arraycopy(a, 2, b, 2, 2);//参数:原数组,从第几个开始,复制到的数组,从哪里开始,复制几个(长度)
//System.arraycopy(a, 1, s, 2, 3);
for(int i=0 ,len=b.length;i<len;i++){
System.out.print(b[i]+"\t");
}
}
注意:复制的长度不能超过目标数组的长度,复制数组类型必须一致
4.4java的新特性
1.可变参数
public static void fun(int...args){
for(int i=0;i<args.length;i++){
System.out.print(args[i]+"\t");
}
}
public static void main(String[] args) {
System.out.println("不传递参数:");
fun();
System.out.println("");
System.out.println("传递一个:");
fun(1);
System.out.println("");
System.out.println("传递5个:");
fun(1,23,4,5,6);
}
2.foreach输出
为了方便数组的输出
public static void fun(int...args){
for(int i :args){
System.out.print(i+"\t");
}
}
public static void main(String[] args) {
System.out.println("不传递参数:");
fun();
System.out.println("");
System.out.println("传递一个:");
fun(1);
System.out.println("");
System.out.println("传递5个:");
fun(1,23,4,5,6);
}
- java学习之路--java数组--java开发实战经典第四章
- 《Java实战开发经典》第四章4.1
- 《Java实战开发经典》第四章4.2
- 《Java实战开发经典》第四章4.3
- 《Java实战开发经典》第四章4.4
- 《Java实战开发经典》第四章4.5
- 《Java实战开发经典》第四章4.6
- 《Java实战开发经典》第四章4.7
- 《Java实战开发经典》第四章4.8
- 《Java实战开发经典》第四章4.9
- 《Java实战开发经典》第四章4.10
- 【Java笔记】Java开发实战经典 - 第四章
- java学习之路----java开发实战经典第12章习题及答案
- java 学习之路----java开发实战经典反射习题答案(15章)
- JAVA开发实战经典
- Java_每天学习一点点之Java开发实战经典第三章习题
- java学习之路---习题---java实战经典第5章习题答案
- Java 学习第四章之流程控制和数组
- Linux 下使用 adb 和 fastboot 命令
- Ogre与MFC结合时的内存泄漏问题
- awk应用小结(所有命令行均经调试)
- 【C++基础】sprintf使用的方法与printf的区别
- 我的Java开发学习之旅------>Java 格式化类(java.util.Formatter)基本用法
- java学习之路--java数组--java开发实战经典第四章
- awk 手册
- java线程同步经典——生产者消费者
- WindowsXP的图标结构
- OSG中的相关词汇表
- 数据库中的主键
- Delphi控件RzSizePanel的打开与关闭
- scp 复制目录命令
- windows7 安装IE11的悲剧