黑马程序员---JAVA基础---数组(四)

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 

 

1、数组的定义:数组是同一种数据类型的集合,其实数组就是一个容器。其格式如下:
     格式1:元素类型 [] 数组名 =new 元素类型 [元素个数或数组长度];
      格式2:元素类型 [] 数组名 =new 元素类型 [元素个数或数组长度] {1,2,3,4,5,....};
2、数组的好处:可以自动给数组中的元素从0开始编号,方便操作一些元素。
3、内存结构
JAVA中内存分为栈内存与堆内存。
栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放
堆内存:(1)数组和对象,通过new建立的实例都存放在堆内存中。
              (2)每一个实体都有内存地址值。
              (3)实体中的变量都有默认初始化值。
              (4)实体不在被使用,会在不确定的时间内被垃圾回收器回收。
4、数组的常见操作:
(1)获取数组中的元素(用遍历操作)
int [] arr =new int[3];
for(int x=0;x<3;x++)
{
System.out.println(arr.lengtjh);
}
(2)获取数组中的最大值
public static int getMax(int[] arr) 
        { 
    int max = 0; 
    for(int x=1; xarr[max]) 
        max = x; 
    } 
    return arr[max]; 
        } 
(3).折半查找:可以提高效率,但是必须要保证该数组是有序的数组。
import java.util.*;
class ArrayTest4
{
public static void main(String[] args)
{
   int[] arr = {3,2,1,5,4,2,9};
   int index = getIndex(arr,2);
  System.out.println("index="+index);
// int x = Arrays.binarySearch(arr,190);//java提供好的一个进行折半查找的功能。开发时使用这个。
// System.out.println("x="+x);
}
public static int getIndex_2(int[] arr,int key)
{
int min = 0,max = arr.length-1,mid;
while(min<=max)
{
mid = (max+min)>>1;
  if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
else
return mid;
}
return min;
}

(4)排序:选择排序和冒泡排序
import java.util.*;
class ArrayTest2
{
/*
选择排序。
内循环结束一次,最值出现头角标位置上。
*/
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++)
{
for(int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
/*
int temp = arr[x];
arr[x] = arr[y];
arr[y]= temp;
*/
swap(arr,x,y);
}
}
}
}

/*
冒泡排序
*/
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
{
if(arr[y]<arr[y+1])
{
/*
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
*/
swap(arr,y,y+1);
}
}
}
}
5、二维数组(使用的引用数据类型初始化为null)其格式如下:
格式1:元素类型 [][] 数组名 =new 元素类型 [<第一维大小>][<第二维大小>];
格式2:元素类型 [] []数组名 =new 元素类型 [元素个数或数组长度] [];

 

 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值