zoukankan      html  css  js  c++  java
  • java学习笔记2--数据类型、数组

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note2.html,转载请注明源地址。

    1.数据类型

    Java数据类型有:

    原始数据类型(Primitive Data Types )

    引用类型(reference type )

    Java原始数据类型又称基本数据类型,它说明了在程序中所能表示的基础数据的种类,通常有8种。引用类型包括类、接口等,具体内容将在后面文章中介绍。

    Java原始(基本)数据类型:

    boolean     布尔型,           只有真(true)与假(false) 

    byte        8位符号整数,     取值范围-128~+127 

    short      16位符号整数,    取值范围-32768~+32767 

    char       16位字符,           Unicode字符集,字符码数值范围:  0(‘u0000’ )~65535(‘uffff’)。

    int          32位符号整数,     取值范围:-2147483648~+2147483647

    long       64位符号整数,      取值范围:-9223372036854775808~+9223372036854775807

    float       32位单精度浮点数,使用IEEE754标准。 

    double    64位双精度浮点数,使用IEEE754标准。 

    Java原始数据类型变量的默认值

    Java原始数据类型占用的位数

    2、%(求模)运算符

    op1 % op2

    计算op1被op2除的余数。 

    说明:

    求模运算时op1与op2必须是整数。

    如果op1为负数,op2为正数,结果为负。

    如果op1为正数,op2为负数,结果为正。

    如果op1为正数,op2为正数,结果为正。

    如果op1为负数,op2为负数,结果为负。

    跑个程序吧:

    public class test
    {
        public static void main(String args[]) {
            System.out.println("4 % 3 = " + 4 % 3);
            System.out.println("-4 % 3 = " + (-4) % 3);
            System.out.println("-4 % -3 = " + (-4) % (-3));
            System.out.println("4 % -3 = " + 4 % (-3));
        }
    }

    运行结果如下:

    4 % 3 = 1
    -4 % 3 = -1
    -4 % -3 = -1
    4 % -3 = 1

    3、强格式的for语句:

    对于数组(Arrays)和集合(Collections)的迭代,有一种更紧凑易读的for语句形式。语法格式:

    for(元素型变量:数组型或集合型变量){

       语句;

    }

    跑个程序吧:

    public class Main
    {
        public static void main(String args[]) {
            int sum = 0;
            int[] numbers = {1,2,3,4,5,6,7,8,9,10};
            for (int item : numbers) {
                sum += item;
            }
            System.out.println("Sum is: " + sum);
        }
    }

    4、一维数组

    一维数组的声明语法格式:

    数组类型 数组名称;

    类型[] 名称; 

    例如: int[] anArray;     String[] agrs;

    创建一维数组

    声明的数组型变量是引用型变量,因此数组声明后只有通过创建才能够使用。创建数组要使用new运算符实现。创建数组通过两个途径:

    (1) 数组声明后用new运算符创建,语法格式:

    数组变量 = new 类型[长度];

    (2) 数组声明时用new运算符创建,语法格式:

    类型[] 数组变量 = new  类型[长度];

    int[] aArray;
    aArray = new int[100];
    
    float[] fArray;
    fArray = new float[35];
    
    double[] dData = new double[23];
    String[] sTitle = new String[15];

    跑个程序吧:

    public class test
    {
        public static void main(String args[]) {
            double[] dRandom;
            int i = 0;
            dRandom = new double[5];
            while( i < 5) {
                dRandom[i] = 9.0 * Math.random();
                System.out.println("dRandom["+ i +"]=" + dRandom[i]);
                i++;
            }
        }
    }

    运行结果如下:

    dRandom[0]=7.513923470155991
    dRandom[1]=3.3304886355341017
    dRandom[2]=2.2258372149369214
    dRandom[3]=4.450285565380552
    dRandom[4]=3.0354964312542174

    数组复制的方法是使用System类提供的arraycopy()方法,其语法如下:

    System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

    System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数据中的起始位置,要复制的数组元素的数量);

    跑个程序吧:

    public class test {
        public static void main(String args[]){
            int arr1[] = {1,2,3,4,5};
            int arr2[] = new int[5];
            System.arraycopy(arr1, 0, arr2, 0, 5);
            for (int i = 0; i < arr2.length; i++) {
                System.out.println(arr2[i]);
            }
        }
    }

    5、Arrays类

    对数组的一些基本操作,像排序、搜索与比较等都是很常见的。在java中提供了Array是类可以协助您作这几个操作,Array是类位于java.util包中,他提供了几个方法可以直接使用。

    sort()                        帮助您对指定的数组排序,所使用的是快速排序法

    binarySearch()          让您对已排序的数组进行二元搜索,如果找到指定的值就返回该值所在的索引,否则就返回负值

    fill()                           当您配置一个数组之后,会依据数据类型来给定默认值。例如整数数组就初始值为0,可以使用Arrays.fill()方法将所有的元素设置为指定的值

    equals()                     比较两个数组中的元素值是否全部相等,如果是将返回true,否则返回false

    import java.util.Scanner;
    import java.util.Arrays;
    public class test {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            int[] arr = { 93, 5, 3, 55, 57, 7, 2, 73, 41, 91 };
    
            System.out.print("排序前: ");
            for (int i = 0; i < arr.length; i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
    
            Arrays.sort(arr);
    
            System.out.print("排序后: ");
            for (int i = 0; i < arr.length; i++){
                System.out.print(arr[i] + " ");
            }
            System.out.print("
    请输入搜索值:");
            int key = scanner.nextInt();
            int find = -1;
            if ((find = Arrays.binarySearch(arr, key)) > -1) {
                System.out.println("找到值于索引 " + find + " 位置");
            } else
                System.out.println("找不到指定值");
        }
    }

    执行结果如下:

    排序前: 93 5 3 55 57 7 2 73 41 91
    排序后: 2 3 5 7 41 55 57 73 91 93
    请输入搜索值:5
    找到值于索引 2 位置

    下面使用Arrays来进行数组的填充与比较:

    import java.util.Arrays;
    public class test {
        public static void main(String[] args) {
            int[] arr1 = new int[10];
            int[] arr2 = new int[10];
            int[] arr3 = new int[10];
    
            Arrays.fill(arr1, 5);
            Arrays.fill(arr2, 5);
            Arrays.fill(arr3, 10);
    
            System.out.print("arr1: ");
            for (int i = 0; i < arr1.length; i++){
                System.out.print(arr1[i] + " ");    
            }
            System.out.println("
    arr1 = arr2 ? " + Arrays.equals(arr1, arr2));
            System.out.println("arr1 = arr3 ? " + Arrays.equals(arr1, arr3));
        }
    }

    执行后的结果如下:

    arr1: 5 5 5 5 5 5 5 5 5 5
    arr1 = arr2 ? true
    arr1 = arr3 ? false

  • 相关阅读:
    HDU 4069 Squiggly Sudoku
    SPOJ 1771 Yet Another NQueen Problem
    POJ 3469 Dual Core CPU
    CF 118E Bertown roads
    URAL 1664 Pipeline Transportation
    POJ 3076 Sudoku
    UVA 10330 Power Transmission
    HDU 1426 Sudoku Killer
    POJ 3074 Sudoku
    HDU 3315 My Brute
  • 原文地址:https://www.cnblogs.com/wuyudong/p/java-study-note2.html
Copyright © 2011-2022 走看看