----------
android培训 、
java培训、期待与您交流! ----------
1,重载
在同一个类中,允许存在一个以上的同名函数,只要他们的
参数个数参或数
类型不同即可。
重载只和参数列表有关系。
(比如定义了某一个方法,然后我需要再一个方法,和这个函数功能一样,就是多一个参数,或者有一个或多个参数类型不一样的时候,就可以重载)
当定义的功能相同,但参数与运算的未知内容不同,(可以是不同返回类型的但必须是同名的)
那么,这时就定义一个函数名称表示该功能,方便阅读,而通过参数列表的不同类区分多个同名函数。即重载。
2,数组。 重要。【
引用数据类型】
之前只学过一维数组。就是容器。
数组就是【同一种数据类型】的集合,数组中的元素从0开始
格式:
元素类型[] 数组名=new 元素类型[元素个数或数组长度]
int[] name=new int[]{2,34,5} (这种方式不能在[]内写长度)
int[] name=new int[3]
int[] name={3,34,3444}
name.length表示数组长度
name[0]下标0的元素,即第一个元素
数组
注意数组长度越界。
数组通常和循环结合使用。通常是for
数组的排序,倒序Arrays.sort() 顺序:for条件小于数组长度,,倒序,初始长度减一,条件大于0最后减减
排序:指定排序,
冒泡排序(记住圈外圈内是长度-1和长度-i-1)
无论什么排序,都需要对满足条件的元素进行位置置换,
所以可以把这部分相同代码提取出来,单独封装
在for中要计算数组中和:定义一个变量int sum=0 sum+=name[i]
而计算最大值 int max=name[0] if(name[i]>max) max=name[i];
假设下标为0的元素最大,然后每个数依次跟0元素比,如果比0元素大,最大就是该下标的数,直到比较遍历数组结束。
定义int max=0 是0下标 同int max=name[0] 。if(name[i]>max) max=name[i];则为if(name[i]>name[max]) max=i;
栈:数据使用完毕会自动释放。局部变量都在栈里。
堆:堆内存中的每一个实体,都有一个地址,表示存放的位置。
new出来的东西就是实体(包括数据,对象)都在堆里。
(上面,name在栈里,而new出来的东西在堆里角标元素,堆指向一个16位的地址,name根据地址指向角标元素
这个时候如果设立一个int y=name 就是把name的地址赋值给y,随意改动他们中的某个元素,都会改变的。
如果这个y是:int y=new int[3]这个时候y会指向一个新的地址值。)
代码区域:
/**
* 对数组的一些练习,
* 1,数组的定义,2数组的输出,3数组的排序,4,数组的倒序,5,最值,求和等
*/
package ChongWuSystem;
import java.util.*;
public class IASort{
public static void main(String [] args){
int [] ar={99,87,2,8,55,33,4};
ShowS(ar);
SelectSort(ar);//选择排序
ShowS(ar);
ShowD(ar);
int max=Max(ar);
int min=Min(ar);
int sum=Sum(ar);
System.out.println("最大值和最小值数组之和分别是:"+max+"\t"+min+"\t"+sum);
int [] arr={199,187,12,18,155,133,14};
ShowS(arr);
bubbleSort(arr);//冒泡排序
ShowS(arr);
Arrays.sort(arr);//
ShowS(arr);
}
//打印数组
public static void ShowS(int[] ar){
for(int i=0;i<ar.length;i++)
{
System.out.print(ar[i]+"\t");
}
System.out.println();
}
/*排序数组
* 选择排序
*/
public static void SelectSort(int []ar){
for(int i=0;i<ar.length-1;i++){
for(int j=i+1;j<ar.length;j++){
if(ar[i]>ar[j]){//如果把>改为<,则返回来。
int temp=ar[i];
ar[i]=ar[j];
ar[j]=temp;
}
}
}
}
/*排序数组
* 冒泡排序 外,长度-1,内,长度-i-1。
* (最快排序“希尔排序”属于三层运算)
*/
public static void bubbleSort(int []ar){
for(int i=0;i<ar.length-1;i++){
for(int j=0;j<ar.length-i-1;j++){
if(ar[j]>ar[j+1]){//如果把>改为<,则返回来。
int temp=ar[j];
ar[j]=ar[j+1];
ar[j+1]=temp;
}
}
}
}
/*倒序
* 其实就是逆输出
* 上面的SelectArray()函数中,可以把>改成小于实现倒序
*/
public static void ShowD(int []ar){
for(int i=ar.length-1;i>=0;i--){
System.out.print(ar[i]+"\t");
}
System.out.println();
}
//最大值
public static int Max(int []ar){
int max=ar[0];
for(int i=1;i<ar.length;i++)
{
if(ar[i]>max){
max=ar[i];
}
}
return max;
}
/*最小值
* 最大值和最小值采用了2种不同的局部变量的定义,其中第一种定义第一个元素,
* 第二种定义的是下标为0的元素。其实都一样,就是比较的时候稍微注意下。
*/
public static int Min(int []ar){
int min=0;
for(int i=0;i<ar.length;i++)
{
if(ar[i]<ar[min]){
min=i;
}
}
return ar[min];
}
//求和
public static int Sum(int []ar){
int sum=0;
for(int i=1;i<ar.length;i++)
{
sum+=ar[i];
}
return sum;
}
//
}
----------
android培训、
java培训、期待与您交流!----------
黑马官网:
http://edu.csdn.net/heima