本文共 2496 字,大约阅读时间需要 8 分钟。
(http://blog.csdn.net/jinhongliang123/article/details/7871291)
注意文中 栈内存 跟 堆内存 图示
数组的概述
1 数组可以看成多个相同类型数据组合,对这些数据的统一管理
2 数组变量属于引用类型,数组也可以看成是对象,数组中的每一个元素相当于该对象的成员变量。
3 数组中的元素可以使任意的数据类型,包括基本类型和引用类型
一维数组的声明
1 一维数组的声明方式:
type var[] ; 或 type[] var;
2 例如:
int a1[];
int a2[]; double b[];
Person[] p; String s1[]
3 语言中声明数组时不能指定其长度(数组中元素的个数),例如:
int a [5];非法
数组对象的创建
1 java使用关键字new创建数组对象,格式为:
数组名 = new 数组元素的类型(数组元素的个数)
2 例如
实例(马士兵--n个人围成一圈,数三退一 )
/*范例名称: * 原文件名称: * 要点: * 1. 数组:数三退一 * */public class ArrayTest { public static void main(String[] args){ boolean[] arr=new boolean[500];//500个人围成一圈 for(int i=0;i1){ if(arr[index]==true){ countNum++; if(countNum==3){ countNum=0; arr[index]=false; leftCount--; } } index++; if(index==arr.length){ index=0; } } for(int i=0;i
/*范例名称: * 原文件名称: * 要点: * 1. 双向循环链表:数三退一(采用面向对象方式实现) * 2. 功能同ArrayTest */public class ListTest { public static void main(String[] args){ KidCircle kc=new KidCircle(500);//500 int countNumber=0; Kid indexKid=new Kid();//报数孩子 indexKid=kc.first; while(kc.count>1){ countNumber++; if(countNumber==3){ kc.delete(indexKid); countNumber=0; } indexKid=indexKid.right; } System.out.println(kc.first.id+""); }}//定义孩子类class Kid{ int id; Kid left; Kid right;}//定义圈class KidCircle{ int count=0;//孩子数量 Kid first,last;//起始孩子节点 KidCircle(int n){ for(int i=0;i