数组
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
}
for(int j=0;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变量得到返回值
希望得到大神的补充,谢谢大家