您的位置:首页 > 编程语言 > Java开发

java基础学习——数组

2015-12-03 17:33 489 查看
数组

1.什么是数组?

答:数组是最基本的一种数据结构,相同数据类型的元素组成的集合。 程序 = 算法 + 数据结构

(1) 数据结构:把数据按照特定的某种结构来保存,设计合理的数据结构是解决问题的前提,设计良好的数据结构导致良好的算法。

(2)算法:解决问题的步骤 | 流程,先弄数据结构再弄算法。

2.数据中元素按照线性顺序排列,线性顺序指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外每一个都有唯一的后继元素。

(1)数组的定义与初始化:A int [] arr = new int[4]; //0,0,0,0

B int [] arr = {1,3,5,7}; //1,3,5,7

C int [] arr = new int[]{1,3,5,7}; //1,3,5,7

D arr = new arr[]{1,3,5,7}; //1,3,5,7

(2)数组的访问:
A 通过.length获取数组的长度

int [] arr = new int [4];

System.out.println(arr.length);

B 通过引用下标来访问数组的元素,下标从0开始最大到.length-1

int [] arr = new int[4];

arr[0] = 100; //给数组arr中第一个元素赋值为100

arr[4] = 100; //异常,数组下标越界

C 数组的遍历

int []arr = new int[4];

for(int i=0;i<arr.length;i++){

arr[i]=(int)(Math.Random()*100);

}

for(int j=0;j<arr.length;j++){

System.out.println(arr[j]);

}

注意:数组下标越界的错误

(3)基本类型的数组创建后其元素的初始值为:byte,short,char,int,long为0,(其中char的为字节码),float和double为0.0,boolean为false.

3.数组的复制

(1)使用System.arrarcopy()访问可以实现数组的复制。

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length).

src---源数组 srcPos---源数组中的起始位置 dest---目标数组

destPos---目标数组的起始位置 length----要复制数组元素的个数

(2)使用java.util.Arrays类的copyof方法进行复制

类型 [ ] newArray = Array.copyof(类型[ ].original,int newlength);

特点:生成的新数组是原数组的副本。

newlength小于原数组,则进行截取;newlength大于原数组,则用0或者null进行填充。

例子:

(1) int [ ] a = new int [ ]{1,2,3,4,5,6};

int [ ] b = new int[10];

复制:System.arrayCopy(1,0,b,0,5);

(2)int [ ] a = {1,2,3,4,5};

复制:int [ ] b = Arrays.copyOf(0,5);

//扩容(创建一个新的数组a,数据不变,长度为原始长度加一)

a = Arrays.copyOf(a,a.lenght+1);

//缩容(创建一个新的数组a,数据不变,长度为原始长度减一)

a = Arrays.copyOf(a,a.kength-1);

4.数组的排序

(1)一般情况下,通过排序过程中数组元素的交换次数来衡量排序算法的优缺,

(2)常用的排序算法为:插入排序,冒泡排序,快速排序等。

(3)数据不一样,使用不同的排序算法效率不同。

A JDK提供的Arrays.sort()方法封装了数组的排序算法,默认为升序。 例如:Array.sort(arr); //arr代表书组名

B 冒泡原理:n个数只需n-1次,每次都和他的下一个元素比,每次都是从第一个开始,冒出来的数就不带他玩了,(外循环控制轮数,内循环控制每次比的次数)

5.质数(素数):只能执行补1和它本身整除的数。

6.并非一次执行就能的大结果的用开关操作(指的是boolean)。 平方根函数 int a = Math.sqrt(number);

7.方法:

A 封装一段特定的逻辑功能

B 尽可能的独立,一个方法只干一件事

C 代码的复用,便于代码的维护

D 方法可以在程序中反复被调用

(1)定义方法的五个要素:修饰词,返回值类型,方法名,参数列表,方法体



(2)方法的参数是指:在调用时传递给方法,需要方法处理的数据,方法有参数也可以没有参数,有参可以使方法处理更加灵活,在方法定义时,需要声明该方法所需要的参数变量,在方法调用时,会将实际的参数值传递给方法的参数变量,必须保证传递参数的类型和额数符合方法的声明。

(3)方法在声明时必须指定返回值的类型:

A 若方法不需要返回数据,将返回值类型声明为void

B 若方法需要数据,将返回值类型声明为特定数据类型

(4)有返回值时:return即可以是个具体数,也可以是个表达式

(5)return作用:结束方法且将数据返回给调方,只有return;只是表示结束方法(可在无返回值得方法中调用)

(6)调用方法时的参数传递

public static int max(int a,int b){

}

int a = 5;

int b= 6;

int myMax = max(a,b);

A 为main方法中的变量a,b,myMax分配空间并赋值

B 调用方法max,为max方法的参数变量a,b分配空间

C 将调用值传递到参数变量中

D max方法运行完返回,参数空间释放

E main方法中的myMax变量得到返回值

希望得到大神的补充,谢谢大家
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: