黑马程序员---JAVA基础---数组(四)
2013-12-26 18:44
232 查看
----------------------
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
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
相关文章推荐
- 黑马程序员——java基础——数组
- 黑马程序员——Java基础(四)之方法、数组
- 黑马程序员——java基础知识篇——>数组
- 黑马程序员---java基础--数组
- 黑马程序员-----java基础之数组及堆和栈
- 黑马程序员——Java基础 数组 (复习)
- 黑马程序员---Java基础---数组
- 黑马程序员 java基础 函数 数组 查找与排序总结
- 黑马程序员----JAVA基础----函数与数组及多线程2
- 黑马程序员——高新技术---Java基础-常用类-排序,Arrays高级数组,Integer类
- 黑马程序员------java学习笔记之数组基础
- 黑马程序员——Java基础(数组)
- 黑马程序员———Java的基础语法和数据类型、数组
- 黑马程序员_java基础第一部分(二)----数组
- 黑马程序员 Java基础学习笔记3 循环和数组
- 黑马程序员——java基础语法(三)---数组
- 黑马程序员_Java基础2_(语句、函数method和数组Array)
- 黑马程序员——Java语言基础——02.java语言基础组成(4)数组及常用排序方法
- 黑马程序员_ Java基础(函数,数组)
- 【黑马程序员】Java基础学习博客——数组