数组和排序

1、Java不支持多维数组,但是可以通过声明数组的数组来实现同样的功能。

package LESSON4;
import java.util.Scanner;
public class demo3 {
    /**
      length()是求String字符串对象中字符的个数,而length是求字符串数组中有多少个字符串。
     */
    public static void main(String[] args) {
        String str[][]={{"杨","羊","洋"},{"网","王","忘"},{"第","滴","地"}};
        for (int i = 0; i < str.length; i++) {//数组行数
            System.out.println(str[i]);//显示的是首地址
            for (int j = 0; j < str[i].length; j++) {//对应行长度
                System.out.print(str[i][j]+"\t");
            }    
            System.out.println();
        }
        String s="abcd";
        System.out.println(s.length());                
    }
}

2、注意:数组一旦创建,其长度就已经确定,是无法进行长度的修改的。注意:数组下标不能越界,否则ArrayIndexOutofBoundsException(数组下标越界异常)
3、整数类型缺省值:0,浮点类型缺省值:0.0,布尔类型缺省值:false, 字符类型缺省值:' ',字符串类型缺省值:null 。

4、main方法参数String[]args

package ceshi;
//java规定main方法参数必须为字符串数组(String [ ]),变量名可以随意,通常使用args即是arguments(”参数“的复数形式)的缩写。
// 参数String[ ] args的作用就是可以在main方法运行前将参数传入main方法中。
public class demo {
    public static void main(String[] args) {
        demo demo=new demo();
        demo.main("男");//调用重载的main方法
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }    
    }
    //方法重载
    public static void main(String args){
        System.out.println(args);    
    }
}

给数组args赋值输出:鼠标右键Run As->Run Configurations打开界面

然后输入数组内容,最后点击Run按钮。

运行结果:


5、冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。

package LESSON4;
public class exercise4 {
    public static void main(String[] args) {
        int a[]={1,7,9,11,13,15,17,19};
        int b[]={2,4,6,8,10};
        int c[]=new int[a.length+b.length];
        for (int i = 0; i < a.length; i++) {
            c[i]=a[i];            
        }
        for (int i = 0; i < b.length; i++) {
            c[a.length+i]=b[i];
            
        }        
        //排序,冒泡
//        for (int i = 0; i < c.length-1; i++) {//遍数
//            for (int j = 0; j < c.length-1-i; j++) {//次数
//                if(c[j]>c[j+1]){//升序
//                    int t;
//                    t=c[j];
//                    c[j]=c[j+1];
//                    c[j+1]=t;                    
//                }                
//            }            
//        }
//选择排序 for (int i = 0; i < c.length-1; i++) {//遍数 for (int j = i; j < c.length; j++) {//次数 if(c[j]>c[i]){//降序 int t; t=c[i]; c[i]=c[j]; c[j]=t; } } } for (int i = 0; i < c.length; i++) { System.out.println(c[i]); } } }

6、增强for循环

for(元素类型 e : 集合或数组){

循环体

}

 

posted @ 2019-05-24 19:38  勤奋的园  阅读(187)  评论(0编辑  收藏  举报