黑马程序员——Java基础语法——数组和循环嵌套

原创 2015年11月18日 02:22:57
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
 * 数组概念:同一种类型数据的集合,其实,数组就是一个容器.
 * 好处:可以自动给数组的元素从0开始编号,方便操作这些元素.
 * 格式1:元素类型[] 素组名 = new 元素类型[元素个数或数组长度]
 * 		int [] arr = new int[5];
 * 格式2:元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3,....元素n};
 * 		int[] arr = new int[]{3,5,7,9,0};
 *   或者int[] arr = {1,2,3,4,5,6}
 * 内存划分:1.寄存器 2.本地方法区 3.方法区 
 * 4.栈内存 用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放.
 * 5.堆内存 数组和对象,通过new建立的实例都存放在堆内存中.
 * */
public class ShuZu {

	public static void main(String[] args) {
		int[] arrays = {23,34,15,64,678,342,533,234,2,9,-999};
		printArrays(arrays);
		xuanZe(arrays);
		xuanZeJiaoBiao(arrays);
		bubble(arrays);
		Arrays.sort(arrays);
		printArrays(arrays);
		arrayDemo(arrays);
		getMax(arrays);
	}
	public static void arrayDemo(int[] arr){
		//int[] arr = new int[]{1,2,3,4,5};
	//	System.out.println(arr);//[I@170a6001 
		//[I 表示int类型的数组,@后面是该素组的初始地址哈希值
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
	public static void getMax(int[] arrays){
		int max = 0;
		for (int i = 0; i < arrays.length; i++) {
			max = arrays[i] > max ? arrays[i]:max;
		}
		System.out.println(max);
	}
	//排序问题:
	//选择排序:用第一个元素依次和后面的元素做比较,确定第一位最小,然后拿第二个和后面的依次比较
	//采用选择排序--基本方法
	public static void xuanZe(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;				
				}
			}
		}	
	}
	//遍历方法
	public static void printArrays(int[] array){
		System.out.print("[");
		for (int i = 0; i < array.length; i++) {
			if( i < array.length-1){
			System.out.print(array[i]+",");
			} else {
				System.out.println(array[i]+"]");
			}
		}
	}
	//选择排序之角标记录法
	public static void xuanZeJiaoBiao(int[] arrays){
		for (int i = 0; i < arrays.length-1; i++) {
			int index = i;
			int min = arrays[i];
			for(int j = i+1 ; j<arrays.length;j++){
				if(arrays[j]<min){
					min = arrays[j];//获取到本循环数组最小值min
					index = j;//本循环结束后获取到整个数组最小值的索引j
				}
				if(i != index){
					replace(arrays,i,index);
				}		
			}
		}
	}
	//替换arrays[i]
	public static void replace(int[] arrays,int i,int index){
		int temp = arrays[i];
		arrays[i] = arrays[index];
		arrays[index] = temp;
	}
	//冒泡排序:第一轮:从第一个元素到倒数第二个元素依次向右比较,把最大数挪到最右边.
	//       第二轮:从第二个元素到倒数第三个元素依次向右比较,把第二大数挪到倒数第二.
	public static void bubble(int[] arr){
		for (int j = 0; j < arr.length-1; j++) {
			for (int i = 0; i < arr.length-j-1; i++) {
				if(arr[i]>arr[i+1]){
					int temp = arr[i];
					arr[i] = arr[i+1];
					arr[i+1] = temp;
				}
			}
		}
	}
}

程序运行的结果为:

[23,34,15,64,678,342,533,234,2,9,-999]
[-999,2,9,15,23,34,64,234,342,533,678]
-999
2
9
15
23
34
64
234
342
533
678
678

For循环嵌套练习

public class ForForTest {
	public static void main(String[] args) {
		method_1();
		method_2();
		method_3();
		method_4();
		method_5();
		method_6();
		method_7();
		
	}
	//打印矩形
	public static void method_1(){
		for(int i = 0 ;i<5;i++){
			for(int j = 0; j<5;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
	//打印倒直角三角形1
	public static void method_2(){
		for(int i = 0 ;i<5;i++){
			for(int j = 0; j<5-i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
	//打印倒直角三角形2
	public static void method_3(){
		for(int i = 0 ;i<5;i++){
			for(int j = i; j<5;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
	//打印正直角三角形2
	public static void method_4(){
		for(int i = 0 ;i<5;i++){
			for(int j = 0; j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
	//打印倒三角数字1
	public static void method_5(){
		for(int i = 0 ;i<5;i++){
			for(int j = 5; j>i;j--){
				System.out.print(j);
			}
			System.out.println();
		}
	}
	//打印倒三角数字2
	public static void method_6(){
		for(int i = 0 ;i<5;i++){
			for(int j = 0; j<=i;j++){
				System.out.print(i+1);
			}
			System.out.println();
		}
	}
	//打印等腰三角形
	public static void method_7(){
		for (int i = 0; i < 5; i++) {
			for(int k = 0; k < i; k++){
				System.out.print(" ");
			}
			for (int j = i; j < 5; j++) {
				System.out.print("* ");
			}
			System.out.println();
		}
	}
}
输出效果:

*****
*****
*****
*****
*****
*****
****
***
**
*
*****
****
***
**
*
*
**
***
****
*****
54321
5432
543
54
5
1
22
333
4444
55555
* * * * * 
 * * * * 
  * * * 
   * * 
    * 


黑马程序员——高新技术---Java基础语法-循环结构和跳转语句

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------  一:顺序结构(这个不多说)   二:选择结构 if语句的几种格式及其使用...

黑马程序员——Java基础语法---数组

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------   一、概念:                在java中,数组就是一个容器...

黑马程序员——Java基础语法 之函数,数组

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- **函数** 函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。 定义函数格式修饰符 返回...

黑马程序员——java基础语法(三)---数组

对java中的数组进行了介绍

黑马程序员——java第四天:基础语法(函数、数组)

函数android培训、java培训、期待与您交流! ----------/div>函数(方法):有特定功能的一小段代码程序。函数的格式:         修饰符 返回值类型 函数名(参数类型 形式参...

黑马程序员——Java基础语法(三)---数组

一、概念         同一种类型数据的集合。简单的来说就是一容器,用来装东西的。         使用数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。   ...

黑马程序员——Java基础:嵌套for循环的进化史

我从最基本的嵌套for循环开始,层层深入,不断演进,实现了许多有意思的小功能,每一个版本都是建立在前一个版本的基础之上变化而成。一共有15个小程序...

黑马程序员——2.2.基础语法(函数、重载、数组、内存划分,进制转换)

Java基础语法(函数、重载、数组、内存划分,进制转换)

黑马程序员——JAVA基础之程序控制流结构之循环结构,循环嵌套

------- android培训、java培训、期待与您交流! ----------

黑马程序员——C语言基础——用printf函数、数组和循环结构输出特殊图形

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------  用printf函数、数组和循环结构输出特殊图形      printf...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——Java基础语法——数组和循环嵌套
举报原因:
原因补充:

(最多只允许输入30个字)