黑马程序员——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基础语法-----函数和数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、函数 定义:函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。 ...
  • fecuznmn1
  • fecuznmn1
  • 2015年05月30日 08:20
  • 219

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

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------   一、概念         同一种类型数据的集合。简单的来说就是一容器,用来...
  • kangmiao89757
  • kangmiao89757
  • 2013年08月30日 21:30
  • 3027

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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
  • rushidaoshaoshuai
  • rushidaoshaoshuai
  • 2015年03月17日 14:54
  • 146

黑马程序员—3、JAVA基础语法&数组

黑马程序员—3、Java基础语法&数组   --------------------- android培训、java培训、期待与您交流! ---------------------- 数组概述:...
  • chenxingsheng_heima
  • chenxingsheng_heima
  • 2012年05月04日 21:15
  • 321

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

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------   一、概念:                在java中,数组就是一个容器...
  • holly_lfj
  • holly_lfj
  • 2015年10月15日 15:23
  • 143

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

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

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

一、概念    同一种类型数据的集合,简单来说就是一个容器用来装同一种类型的东西。    数组的好处:可以自动给数组中的元素进行编号,便于操作这些元素。 二、一维数组    定义格式:1、元素...
  • xiaguosen10
  • xiaguosen10
  • 2015年02月05日 13:32
  • 180

黑马程序员-----java基础语法 函数数组

------- android培训、java培训、期待与您交流! ---------- 一:函数 定义在类中,有特定功能的一段小程序。 函数的格式: 修饰符 返回值类型 函数名(形参类型 形式参数1,...
  • qqxyf27
  • qqxyf27
  • 2015年09月26日 13:50
  • 157

【黑马程序员】-Java基础语法(数组) 第四天

-------  android培训、java培训、java学习型技术博客、期待与您交流! ---------- 知识点 数组定义:数组是用来存储数据的集合,但是,通常我们会发现把数组看做一个...
  • yi_remember
  • yi_remember
  • 2013年03月10日 10:35
  • 731

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

对java中的数组进行了介绍
  • ly_20104803
  • ly_20104803
  • 2015年11月04日 18:29
  • 174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——Java基础语法——数组和循环嵌套
举报原因:
原因补充:

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