黑马程序员 学习日志06 数组以及逻辑运算符
2014-11-13 14:16
302 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
数组
概念:同一类型数据的集合,其实数组就是一个容器。
好处:
可以自动给数组中的元素从0开始编号 ,方便操作这些元素。
格式1:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
例:
<span style="font-size:18px;">int[] arr = new int[5];</span>格式2:
元素类型[] 数组名 = new 元素类型[]{元素,元素,元素......};
例:
<span style="font-size:18px;">int[] arr = new int[]{1,2,3,4,5};</span>
数组的操作:
获取数组中的元素,通常用到遍历
数组中有一个属性可以直接获取到数组中元素的个数,length。
使用方式:数组名称.length
数组的遍历:
<span style="font-size:18px;">public static void printArray(int[] arr) { for(int i = 0; i < arr.length;i++) { System.out.print(arr[i]); } }</span>
获取数组中的最大值:
思路:
1.获取最值需要进行比较,每一次比较都会有一个较大的值,因此该值不确定。通过一个变量存储
2.让数组中每一个元素都和这个变量中的值比较。如果大于了这个值,就用该变量记录较大值。
3.当所有元素都比较完,那么该变量中存储的值就是最大值。
步骤:
1.定义变量。初始化为数组中任意一个元素。
2.通过循环语句对数组进行遍历。
3.在变量中定义判断条件,如果遍历到的元素比变量中的大,就赋值给变量。
<span style="font-size:18px;">public static int getMax(int[] arr) { int max = arr[0]; for(int i = 1 ;i<arr.length;i++) { if(arr[i]>max) max=arr[i]; } return max; } </span>
对数组进行排序的方式有很多下面演示选择排序和冒泡排序
<span style="font-size:18px;">/* 选择排序 */ 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; } } } }</span>
<span style="font-size:18px;">/* 冒泡排序 */ public static void bubbleSort(int[] arr) { for(int x = 0; x<arr.length; x++) { for(int y = 0;y<arr.length-x;y++) { if(arr[y]>arr[y+1]) { int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } } }</span>
数组的二分法查找:
<span style="font-size:18px;">/* 二分法查找 */ public static void halfSearch(int[] arr,int key) { int max = arr.length-1, min = 0,mid; while(arr[min]<arr[max]) { mid = (min+max)>>1 if(arr[key]<arr[mid]) max=mid-1; else if(arr[key]>arr[mid]) min = mid+1; else return mid; } }</span>
<span style="font-size:18px;"> </span>
二维数组:
格式1:int[][] arr = new int[3][2];定义了名称为arr的二维数组,二维数组中有3个1维数组,每个一维数组中有2个元素
一维数组分别是arr[0],arr[1],arr[2]
给第一个一维数组1角标赋值43: arr[0][1] = 43;
格式2; int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[1];
arr[2] = new int[3];
逻辑运算符
逻辑运算符是用于连接boolean类型的表达式true & true = true
true & false = false
false & true = false
false & false = false
&与 :只要两边的boolean表达式有一个结果为false,那么结果就为false。
只有两边都为true,结果才为true。
true | true = true
true | false = true
false | true = true
false | false = false
|或 : 两边只要有一个结果为true,那么结果就为true。
只有两边都为false,结果才为false。
true ^ true = false
true ^ false = true
false ^ true = true
false ^ false = false
^异或 : 两边相同为false,两边不同为true。
&和&&的特点:
&:无论左边是true还是false,右边都需要运算。
&&:如果左边为false,右边不运算。
|和||的特点:
|:和&一样 两边都需要运算。||:如果左边为true,右边不运算。
相关文章推荐
- 黑马程序员——黑马学习日志之四 Java基础——数组
- 黑马程序员——javascript语言的方法以及部分对象的使用学习日志
- 黑马程序员--Java学习06--数组
- 黑马程序员_java基础学习笔记03_函数以及数组知识
- 黑马程序员_学习记录06:静态以及单例设计模式
- 黑马程序员——零基础学习iOS开发——06 字符串、指针、指针和数组、指针和字符串、指针和函数
- 黑马程序员-c#学习之数组
- C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
- 黑马程序员-----关于IO流学习日志
- 黑马程序员-----网络编程学习日志
- 黑马程序员——ADO.NET学习日志
- 黑马程序员-----类加载器、内省学习日志
- 迭代器学习之二:数组的可枚举类型和枚举数的定义以及编译器的foreach工作原理
- 黑马程序员——C#学习日志
- 黑马程序员_集合学习以及拓展
- 黑马程序员——Html学习日志
- 黑马程序员_C#学习之数组(代码)
- 黑马程序员_学习笔记7可变参数的应用及1.5增强for的联合使用以及反射的总结
- 黑马程序员-----银行调度系统学习日志
- 数组06 - 零基础入门学习C语言28