黑马程序员 --- 数组
来源:互联网 发布:沙龙 陈奕迅 知乎 编辑:程序博客网 时间:2024/06/03 15:27
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
数组的定义:
同一种类型数据的集合。其实数组就是一个容器。
可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式1:
元素类型[] 数组名= new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
格式2:
元素类型[] 数组名= new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7}
获取数组中的最大最小值;
/*给定一个数组{5,1,6,4,2,8,9}。1,获取数组中的最大值,以及最小值。*/class ArrayTest {public static int getMax(int[] arr){int max = arr[0];for(int x=1; x<arr.length; x++){if(arr[x]>max)max = arr[x];}return max;}public static int getMax_2(int[] arr){int max = 0;for(int x=1; x<arr.length; x++){if(arr[x]>arr[max])max = x;}return arr[max];}/*获取最小值。*/public static int getMin(int[] arr){int min = 0;for(int x=1; x<arr.length; x++){if(arr[x]<arr[min])min = x;}return arr[min];}//获取double类型数组的最大值。因为功能一致,所以定义相同函数名称。以重载形式存在。/*public static double getMax(double[] arr){}*/public static void main(String[] args){int[] arr ={5,1,6,4,2,8,9};int max = getMax_2(arr);int min = getMin(arr);System.out.println("max="+max);System.out.println("min="+min);//boolean[] ar = new boolean[3];//System.out.println(ar[1]);}}
折半查找
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[] arr = {2,4,5,7,8,19,32,45};//8int index = getIndex_2(arr,190);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;elsereturn mid;}return min;}/*折半的第二种方式。*/public static int halfSearch_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;elsereturn mid;}return -1;}/*折半查找。提高效率,但是必须要保证该数组是有序的数组。*/public static int halfSearch(int[] arr,int key){int min,max,mid;min = 0;max = arr.length-1;mid = (max+min)/2;while(arr[mid]!=key){if(key>arr[mid])min = mid + 1;else if(key<arr[mid])max = mid - 1;if(min>max)return -1;mid = (max+min)/2;}return mid;}//定义功能,获取key第一次出现在数组中的位置。如果返回是-1,那么代表该key在数组中不存在。public static int getIndex(int[] arr,int key){for(int x=0; x<arr.length; x++){if(arr[x]==key)return x;}return -1;}}
数组排序——选择排序
public class ArrayDemo5 {public static void main(String[] args){int[] arr={3,6,7,9,1,4};//定义一个数组selectSort(arr);//调用排序方法printArray(arr);//打印排序后数组}public static void selectSort(int[] arr)//定义一个方法,用于元素从小到大排序{for(int x=0;x<arr.length-1;x++)//定义for循环从数组第一个元素开始和后面每个元素比较{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;}}}}public static void printArray(int[] arr) //打印数组方法{for(int x=0;x<arr.length;x++){if(x!=arr.length-1){System.out.print("["+arr[x]+"]"+",");}elseSystem.out.println("["+arr[x]+"]");}}}
数组排序——冒泡排序
public class BubbleSort {public static void main(String[] args){int [] arr={5,2,7,1,6};//定义一个数组BubSort(arr);//调用冒泡排序printArray(arr);//打印排序后数组}public static void BubSort(int[] arr)//定义冒泡排序方法{for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-x-1;y++){if(arr[y]>arr[y+1])//如果前面元素大于后面的元素则置换{int temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}}public static void printArray(int[] arr) //打印数组{for(int x=0;x<arr.length;x++){if(x!=arr.length-1){System.out.print("["+arr[x]+"]"+",");}elseSystem.out.println("["+arr[x]+"]");}}}
二维数组[][]
格式1:int[][] arr = new int[3][2];
定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0], arr[1], arr[2]
给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
格式2:int[][] arr = new int[3][];
二维数组中有3个一维数组
每个一维数组都是默认初始化值null
可以对这个三个一维数组分别进行初始化
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
定义一个名称为arr的二维数组
二维数组中的有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组arr[0] = {3,8,2};
第二个一维数组arr[1] = {2,7};
第三个一维数组arr[2] = {9,0,1,6};
第三个一维数组的长度表示方式:arr[2].length;
注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
- 黑马程序员-java数组
- 黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员-----数组
- 黑马程序员-java数组
- 黑马程序员_day04 数组。
- 黑马程序员_数组
- 7.黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员-数组
- 黑马程序员_数组
- 黑马程序员--java数组
- 黑马程序员--数组
- 黑马程序员---数组
- 黑马程序员--关于数组
- 黑马程序员-数组
- 关于AcceptChange方法和Update更新数据库问题
- SOCKET 封包和拆包
- itk vtk in matlab
- 面向对象基础
- ICU正则表达式初试
- 黑马程序员 --- 数组
- 發生找不到 mysql.sock 的處理方法!
- 110408 Football (aka Soccer)
- 杂记
- IEEE754标准实数转化类(转)
- css盒子模型 在不同浏览器中的差别
- c 动态内存分配
- snort_rules/doc/signatures 规则解析放入MySql数据中
- 三维计算几何模板整理