• java笔记 chapter5 数组和枚举


    数组
    枚举
     
     
    数组:是由相同类型的若干项数据组成的一个数据集合。
    数组做的3件事:
    1),造容器
    2),把数据放进去
    3),把数据拿出来
    一维数组的声明:
         数据类型[] 变量名;
         例如char s[]; 和char [] s;这两个表达都OK,建议后者。
    int [] i; 
    String [] names; 
    float [] f;     float型数组f
    Manager[] m; Manager型数组m
    数组的创建:
         创建的时候要指明数组的长度。如:char [] s = new char [20];创建一个长度为20的char类型数组
    数组的初始化:
         当创建一个数组时,每个元素都被自动使用默认值进行初始化。如果是引用类型的,则初始化为null。int型的则默认为0,float型的默认为0.0f。
    数组的内存分配:
    数组一旦被创建,则长度不可改变
    创建数组时,系统会为该数组分配内存空间,并且按照数组的长度等分 
    数组元素的访问:
         1,普通的for循环:
              public class ArrayDemo01 {
                   public static void main(String[] args) {
                        String []  names = {"jim","kate","","lily"};
                       
                        for(int i=0; i< names.length; i++) {
                             System.out.println(names[i]);
                        }    
                   }
              }
    // result is as below 
    jim
    kate
     
    lily
         2,增强for循环:只能取出 数组里的值,不能赋值,因为没有索引。
               for(int i :a){                // 把数组a中的数字循环输出并赋值给i
         System.out.print(i)
    }
              public class ArrayDemo01 {
                   public static void main(String[] args) {
                        String []  names = {"jim","kate","","lily"};   
                        for(String a : names) {
                             System.out.println(a);
                        }
                   }
              }
    // 输出结果同上。
         3, 数组的length属性指的是数组的长度,而不是数组里保存的元素的个数。很明显上面的数组names长度是4个,但是实际保存的是3个元素。
              public class ArrayDemo01 {
                   public static void main(String[] args) {
                        String []  names = {"jim","kate","","lily"};                  
                          System.out.println(names.length);     //结果输出4
                   }
              }
         
    多维数组
    二维数组其实就是一维的一维数组。有几维就有几重for循环。
    N维数组就是一维的N-1维数组
     
    数组的复制:
              System.arraycopy(src, srcPosotion, dest, destPosition, length)
    System.arraycopy(from, fromIndex, to, toIndex, count);    
    System.arraycopy() 拷贝的是引用,而不是对象。对象本身不改变。
    例子:把数组a中的2 3 4这3个元素复制到数组b的第3个元素那里
              public class ArrayCopyDemo {
                   public static void main(String[] args) {
                        int [] a = {1,2,3,4,5,6};
                        int [] b = {21,22,23,24,25,26,27};
                       
                        System.arraycopy(a, 1, b, 2, 3);
                       
                        for(int i=0; i < b.length;i++ ) {
                             System.out.println(b[i]);
                        }         
                   }
              }
              //output:
              //21   22   2  3  4  26  27
     
    数组的排序:
    冒泡排序
    选择排序
    插入排序
    希尔排序
    java.util.Arrays.sort(a); 默认是升序排序
     
    枚举
    枚举里面包含着所有可能取值的常量。
    枚举可以保证在编译期间检测应用使用的常量值是否合法,避免运行期逻辑错误。
     
    枚举的本质就是一个类,编译将生成class文件。枚举里面可以定义属性,方法和构造方法。
    枚举的构造方法必须是private的,这样外面就无法调取其构造方法,就是不给外面创造实例的机会
    枚举的值就是这个类的实例,它是可以调方法的。
     
  • 相关阅读:
    【转帖】如何学好 C 语言
    设计模式:单件模式(Singleton Pattern)
    如果软件正在占领全世界.为什么程序员得不到任何尊重?
    【转】程序员技术练级攻略
    JS闭包理解的彻底吗?
    设计模式:原型模式(Prototype Pattern)
    关于基础类型
    IIS5和IIS6的Asp.net应用程序生命周期事件和Global.asax文件
    App_Code文件夹和Bin文件夹
    构造函数
  • 原文地址:https://www.cnblogs.com/wxc-xiaohuang/p/3483010.html
Copyright © 2020-2023  润新知