java中的数组概念

数组的定义形式:

 动态初始化方式;

  1.声明并开辟数组

String str[]=new String[3];//3表示数组的长度

  2.分布完成

String str[]=null;
str=new String[3];

静态初始化

  1.简化格式

String str [] = {"1","2","3"};

  2.完整格式

String str = new String[]{"1","2","3"}

数组的内存分析,数组属于引用传递

public class Test{
    public static void main(String args[]){
        int data[] = new int[3];//开辟一个长度为3的数组
        data[0]=1;
        data[1]=2;
        data[2]=3;

      int temp[] = data;
      temp[0] = 99

      for(int x=0;x<data.length;x++){

            System.out.println(data[x]);
        }
    }
}

当temp[0]的值改变,则data[0]也会被改变,这就是引用传递;

(此处有图片)

二维数组的定义

public class Test{
    public static void main(String args[]){
        int data[][] = new int[][]{
            {1,2,3},
            {4,5,6},
            {7,8,9}
        };
        //进行数组的输出操作
        //外层循环控制行
        for(int x=0;x<data.length;x++){
            //内层循环控制列
            for(int y=0;y<data[x].length;y++){
                System.out.print(data[x][y]+"\t");
            }
            System.out.println();
        }
    }
}

数组排序中的一个方法

public class Test{
    public static void main(String args[]){
        int data[] = new int[]{10,25,3,40,8,27,44,17,13,50,2};
        print(data);
        sort(data);
        print(data);
    }
    public static void sort(int arr[]){
        for(int x=0;x<arr.length;x++){//外层循环主要控制排序的次数
            for(int y=0;y<arr.length-1;y++){//内层循环主要是进行数组的排序
                if(arr[y]>arr[y+1]){
                    int temp=arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1]=temp;
                }

            }
        }
    }
    public static void print(int temp[]){
        for(int x=0;x<temp.length;x++){
            System.out.print(temp[x]+"、");
        }
        System.out.println();
    }
}

数组的转置

//数组的转置
public class Test{
    public static void main(String args[]){
        int data[] = new int[]{1,2,3,4,5,6,7,8,9,10};
        print(data);
        reverse(data);
        print(data);
    }
    public static void reverse(int arr[]){
        int head=0;        //从头开始增加
        int tail=arr.length-1;    //从尾部递减
        for(int x=0;x<arr.length/2;x++){
            int t=arr[head];
            arr[head] = arr[tail];
            arr[tail] = t;
            tail--;
            head++;
        }
    }
    public static void print(int temp[]){
        for(int x=0;x<temp.length;x++){
            System.out.print(temp[x]+"、");
        }
        System.out.println();
    }
}

二维数组转置

public class Test{
    public static void main(String args[]){
        int data[][] = new int[][]{
            {1,2,3},
            {4,5,6},
            {7,8,9}
        };
        print(data);
        reverse(data);
        print(data);
    }
    public static void reverse(int arr[][]){
        for(int x=0;x<arr.length;x++){
            for(int y=x;y<arr[x].length;y++){
                    int t=arr[x][y];
                    arr[x][y]=arr[y][x];
                    arr[y][x] = t;
            }
        }
    }
    public static void print(int temp[][]){
        for(int x= 0;x<temp.length;x++){
            for(int y=0;y<temp[x].length;y++){
                System.out.print(temp[x][y]+"、");
            }
            System.out.println();
        }
    }
}

数组中常用的方法

数组拷贝:System.arraycopy

public class TestDemo{
    public static void main(String args[]){
        int dataA[] =new int[]{1,2,3,4,5,6,7,8,9};//源数组
        int dataB[] =new int[]{11,22,33,44,55,66,77,88,99};//拷贝的数组
        System.arraycopy(dataA,2,dataB,3,2);
        print(dataB);
    }
    public static void print(int temp[]){
        for(int x= 0;x<temp.length;x++){
                System.out.print(temp[x]+"、");
        }
        System.out.println();
    }
}
11、22、33、3、4、66、77、88、99、

数组排序的方法:java.util.Array.sort(数组名称);

初次接触对象数组:所谓的对象数组,就是把引用类型的对象通过数组的形式进行保存

代码实例

class Book{
    private String title;
    private double price;
    public Book(String title, double  price){
        this.title=title;
        this.price=price;
    }
    public String toString(){
        return "书的名字:" + this.title + ",价格:"  + this.price;
    }
}
public class Test{
    public static void main(String args[]){
        Book book[] = new Book[]{
            new    Book("java",11.3),
            new    Book("javascript",17.3),
            new    Book("html",9.3)
        };
        for(int x=0;x<book.length;x++){
            System.out.println(book[x]);
        }
    }
}
时间: 2024-11-05 12:31:57

java中的数组概念的相关文章

Java学习之路(三):Java中的数组

数组的概述和定义的格式 数组的作用: 用来存储同种数据类型的多个值 数组的基本概念: 数组是存储同一种数据类型多个元素的集合.就相当于一个容器. 注意:数组既可以存储基本数据类型,也可以存储引用数据类型. 数组的定义格式: 数据类型[] 数组名 = new 数据类型[指定数组的长度] 数组的初始化 概念: 就是为数组开辟连续的内存空间,并且为每个数的元素赋值 如何初始化: 动态初始化:指定长度,有系统给出初始化值  int[] arr = new int[5] 静态初始化:给出初始化的值 格式:

将Java中的数组进行二次封装成属于我们自己的数组

我们来简略回顾一下Java数组的基础概念: 数组最大的优点是可以快速查询,因为数组直接通过索引查询很快:array[2],所以在随机访问时有一定的优势.其数据结构是简单的线性序列,这使得元素访问非常快速,并且按照索引遍历数组方便 数组最好应用于"索引有语意"的情况 但并非所有有语意的索引都适用于数组,例如索引是身 份 证号这种长度的数字,就无法作为索引使用 而数组也同样可以处理"索引没有语意"的情况 数组的缺点: 根据内容查找元素速度慢 数组的大小一经确定不能改变

第81节:Java中的数组

本节介绍数组的基本概念,数据就是一种数据结构,可以用来存储多个数据,每个数组中可以存放相同类型的数据.比如,在学校,我们是一个班,这里的班级中每个同学都是这个班级数组中的元素,都是同样的类型为学生,对应的学号就是我们的索引,但是在现实中的学号一般都是从1开始的,而在Java中的数组索引是从0开始的. 定义一个数组为方括([]),通过数组元素的索引(或下标,角标)来访问数组中的元素,同时可以为数组赋值和取出数组的元素值. 问: 在Java中为什么要有数组呢? 答: 数组就是一个容器,是用来存储同种

慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组

来源:http://www.imooc.com/code/1525 Java 中操作数组只需要四个步骤: 1. 声明数组 语法:  或者  其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简单地说,就是指定数组中最多可存储多少个元素 语法:  其中,数组长度就是数组中能存放元素的个数,如: 话说,我们也可以将上面的两个步骤合并,在声明数组的同时为它分配空间,如: 3. 赋值 分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩 4.

在Java中判断数组中包含某个元素的几种方式的比较

闲来无事,将java中判断数组中包含某个元素的几种方式的速度进行对比,直接上代码 talk is cheap, show you the code package test.contain.lishaojie; import java.util.Arrays;import java.util.HashSet;import java.util.Set; public class TestContain { /** * @param args */ public static void main(S

【转】java中byte数组与int类型的转换(两种方式)----不错

原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 第一种方法: public static byte[] int2byte(int

在java中删除数组元素的练习

有一个有序整数数组,要求输入一个数字,在数组中查找是否有这个数,如果有,将该数作为最后一个元素(其他元素仍然有序):如果没有,则显示“数组中没有这个数!” public static void main(String[] args) { int[] m={1,2,3,4,5,6,7,8,9,10}; System.out.println("请输入一个整数:"); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int ind

【java】解析java中的数组

目录结构: contents structure [-] 一维数组 1,什么是一维数组 2,声明一维数组的三种方式 二维数组 1,什么是二维数组 2,声明二维数组的3种方式 3,二维数组的遍历示例 数组在内存中的空间分配情况 各种数据类型在声明完毕后的默认初始值 解析数组中length属性 java中的数组是对象吗 创建数组对象的模板在哪里 java数组中.lenght属性的来源 参考文章 1,一维数组 1.1 什么是一维数组 一维数组就是在内存连续分配的一段存储空间. 1.2 声明一维数组的三

Android笔记:java 中的数组

在与嵌入式设备通讯的过程中使用的socket通讯 获取的字节流,通常转换为字节数组,需要根据协议将字节数组拆分.对于有规律的重复拆分可以使用,由于java中不能像c中直接进行内存操作例如使用struct 内存拷贝可以直接实现,这里考虑的是借用数组拷贝的方式来实现. java数组复制参考 引自百度空间 同时参考 数组拷贝之java.lang.System.arraycopy和java.util.Arrays.copyOf方法 java数组复制的4种方式,java数组拷贝问题 JAVA数组的复制是引