`

浅谈java中的数组

    博客分类:
  • java
阅读更多

1、什么是数组?

 

    数组是一种数据结构,用来存储同一类型的集合,通过一个整型的下标可以返回数组中的每一个值。

通俗的说,数组就是多个相同类型数据的组合,在内存中用连续的区域进行存储,每个区域有一个下标。

 

2、java中数组与C/C++中数组的区别是什么?

 

    C/C++中的数组是可以在栈空间中分配,但是Java中数组变量属于引用类型,数组对象在堆中分配。

 

3、数组中的元素的数据类型是否有什么限制?

 

    数组中的元素可以是任何数据类型,包括基本类型和引用类型。

 

4、数组的分类:

    a.一维数组

    b.二维数组

 

5、一维数组的声明:

 

    声明整型数组 a: int[] a 或int a[]

 

    上面哪种方式声明更好一些呢?

 

    int [] a这种形式要好一些,因为它将类型int[] 整型数组与变量名分开了。

 

    我们需要注意:a只是对数组的一个引用。Java语言中声明数组时不能指定长度(也就是数组元素的个数),如int[5] a是非法的。

 

6、一维数组的初始化:

 

    应该使用new关键字创建真正的数组。也就是为一个数组在内存中开辟一块存储空间。

 

7、如何给一维数组进行赋值呢?

 

    可以通过for循环进行赋值。

    int [] a = new int[100];

    for(int i = 0;i<a.length;i++){

        a[i] = i;

    }

 

    需要注意的是:数组一量被创建,就不能再改变它的大小.

 

8、给数组初始化的方式:

 

    a、 使用for循环进行赋值

    b、 数组创建与赋予初始值一起进行。

           int [] a = {1,2,3,4};

    c、 匿名数组

          new int[] {1,2,3,4};

    匿名数组用在什么地方呢,有些时候某个方法需要接收一个一维数组的参数,这时候就可以使用一个匿名数组代上初始化的值传递给方法。

 

9、如何对数组元素进行拷贝?

<1>、数组变量如何拷贝?

把一个数组变量赋给另一个数组变量,两个变量将引用同一个数组:

int[] a = {1,2,3,4};

int[] b = a;

b[2] = 4;//a[2]也会变为4

<2>、数组值应该如何拷贝?

目的是为了实现将一个数组的所有值拷贝到一个新数组中,需要使用到java.util.Arrays类中的copyOf(from,large)方法

第一个参数:从哪一个数组拷贝

第二个参数:新数组的长度

int [] a = Arrays.copyOf(b,b.length);

数组的长度当然可以扩大:

int [] a = Arrays.copyOf(b,2*b.length);

注意:如果新数组的长度大于原数组,数组元素是数值型,那么多余的元素将被赋值为0,如果数组的元素是boolean型,那么默认赋值为false;如果是引用类型,那么赋予的值是null。

<3>、在JAVASE6之前,用System类的arraycopy方法将一个数组的元素拷贝到另一个数组中(java.lang.System)

System.arraycopy(from,fromindex,to,toindex,count);

数组to必须有足够的空间存放拷贝的元素。

from元数组

fromindex:从原数组下标为fromindex的位置开始拷贝

to:新数组

toindex:从新数组的下标为toindex的位置开始填充

count:一共拷贝count个元素

 

10、如何来遍历数组?

<1>、使用for循环

<2>、使用增强的for循环

它可以依次处理数组中的每个元素(其他类型的元素集合亦可)而不必为指定下标值而担心。

<3>、增强的for循环格式:

for(varable:collection)statement

varable用于暂存集合中的每一个元素,并执行相应的语句。

collection必须是一个数组或者是一个实现了Iterable接口类对象。

在什么时候用增强的for循环,什么情况下不用增强的for循环呢?

如果需要处理一个集合中的所有元素,增强的for循环相当不错。

如果不希望遍历集合中所有的元素,或者在循环内需要使用到数组下标值时,则多采用传统的数组遍历方式。

 

11、二维数组:

<1>、什么是二维数组?

通俗的说就是以一维数组为数组元素的数组。

<2>、二维数组的声明与初始化需要注意:

按从左到右的顺序进行。

<3>、使用增强的for循环遍历二维数组如何做?

public static void main(String [] args){

int [][] a = {{1,2,3},{4,5,6}};

for(int[] b : a){

for(int c : b){

System.out.println(c);

}

}

}

12、如何对数组进行排序呢?

<1>对数值型的数组进行排序

int a = new int[]{1,2,3,4};

Arrays.sort(a);

<2>、字符串排序,先大写后小写

String [] str = new String[]{"x","X","a","A"};

Arrays.sort(str);

<3>、严格按字母顺序排序,也就是忽略大小写排序

Arrays.sort(str,String.CASE_INSENSITIVE_ORDER);

<4>、反向排序

Arrays.sort(str,Collections.reverseOrder());

<5>、忽略大小写反向排序

Arrays.sort(str,String.CASE_INSENSITIVE_ORDER);

Collections.reverse(Arrays.asList(str));

 

 

 

分享到:
评论

相关推荐

    浅谈Java中复制数组的方式

    特别是在数组处理中,需要将一个数组的内容复制到另一个数组中。在 Java 中,可以使用不同的方法来复制数组,本文将详细介绍 Java 中复制数组的几种方法。 使用 FOR 循环 一种简单的方法是使用 FOR 循环来复制数组...

    浅谈java的byte数组的不同写法

    需要注意的是,如果byte数组中的值超过了127,由于字节的二补数表示法,超出的部分将会以负数的形式显示。例如,128在字节中表示为-128,129则表示为-127,以此类推。 字节数组在Java中应用广泛,如在网络通信、...

    浅谈Java数组的一些使用方法及堆栈存储

    若需要一个更大的数组,通常需要创建一个新的数组,然后将原数组的元素复制到新数组中。 2. 数组的复制:可以使用System.arraycopy()方法或Arrays.copyOf()方法进行数组复制和扩容。例如,int[] arr2 = Arrays....

    浅谈Java字符串Java开发Java经验技巧共11页.p

    标题中的“浅谈Java字符串Java开发Java经验技巧共11页”表明这是一份关于Java编程,特别是关于Java字符串处理的深度技术文档。在Java中,字符串是编程中经常遇到的基本数据类型,对于任何Java开发者来说,理解和掌握...

    浅谈java中字符串数组、字符串、整形之间的转换

    Java 中字符串数组、字符串、整形之间的转换 在 Java 编程中,字符串数组、字符串、整形之间的转换是非常重要的操作。今天,我们将详细介绍这些转换的实现方法。 字符串数组转字符串 在 Java 中,将字符串数组...

    浅谈Java中的变量.pdf

    Java中的变量是编程中最基础的概念,它用于存储和表示程序中的数据。本文主要讨论了Java中变量使用时的几个关键方面,包括变量的类型、作用域、值和生存期,并探讨了这些因素在Java虚拟机(JVM)中的实现机制。 1. ...

    浅谈Java中的equals和==Java开发Java经验

    在Java编程语言中,`equals()`方法和`==`运算符是两个经常被用来比较对象是否相等的关键概念。理解它们的区别和用法对于任何Java开发者来说都至关重要,特别是对于那些正在积累Java开发经验的人来说。 首先,让我们...

    浅谈java中的一维数组、二维数组、三维数组、多维数组

    Java 中的一维数组、二维数组、三维数组和多维数组 Java 中的数组是一种复杂的数据结构,允许程序员存储和操作多个值。数组可以是一维、二维、三维或...通过使用循环遍历数组,可以轻松地访问和操作数组中的每个元素。

    浅谈Java中方法的参数传值.pdf

    Java方法参数传值是Java编程中的基础知识点,涉及变量、数据类型和方法调用的机制。在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型包括布尔型(boolean)、字节型(byte)、短整型(short)、整型...

    浅谈JAVA虚拟机JVM及工作原理

    "浅谈JAVA虚拟机JVM及工作原理" Java虚拟机(JVM)是Java语言的 runtime 环境,它提供了一个平台独立的环境,使得Java程序可以跨平台运行。JVM 的主要组件包括虚拟机栈、堆、方法区、程序计数器、本地方法栈等。 1...

    浅谈Java中的几种随机数

    在Java编程语言中,生成随机数是一项常见的任务,它在各种场景中都有应用,比如模拟随机事件、游戏编程、加密算法等。本文将深入探讨Java中生成随机数的几种主要方法。 首先,Java提供了一个内置的`java.util....

    浅谈java 字符串,字符数组,list间的转化

    在Java编程语言中,字符串(String)、字符数组(char[])和列表(List)是三种常见的数据结构,它们之间可以通过不同的方法进行相互转换。本文将深入探讨如何在这些数据类型间进行转换,以便更好地理解和应用。 1....

    浅谈java中集合的由来,以及集合和数组的区别详解

    在Java早期版本中,程序员主要依赖数组来存储和管理对象。然而,数组存在一些限制,例如固定大小、类型约束以及不支持动态扩展等。为了克服这些限制,Java引入了集合框架,这是一个统一的接口和类的集合,为存储、...

    浅谈javascript和java中的数组

    javascript中的数组  数组的创建  直接创建方式 var str = ['java', 'js'];  使用new创建方式: var a = new Array(10); // 定义长度为10的数组(可变)  另类new创建方式:var a = new Array(1, 2, 3...

    浅谈Java的输入输出流.pdf

    - 提供了与 `InputStream` 和 `OutputStream` 类似的方法:`read()`、`read(char[] cbuf)` 和 `read(char[] cbuf, int off, int len)`,分别用于读取单个字符、读取字符到数组以及读取指定长度的字符到数组中。...

    浅谈Java的输入输出流

    ### 浅谈Java的输入输出流 #### 一、引言 Java的输入输出功能是其强大特性之一,为开发者提供了灵活多样的处理方式。尽管如此,初学者可能会觉得Java的IO操作相对复杂,因为涉及到多种不同的对象和类。本文旨在提供...

    浅谈Java中的Set、List、Map的区别.docx

    8. Object[] toArray():返回一个数组,该数组中包括集合中的所有元素 Iterator 接口声明了如下方法: 1. hasNext():判断集合中元素是否遍历完毕,如果没有,就返回 true 2. next():返回下一个元素 3. remove()...

    浅谈java!

    本文基于给定的文件信息,详细阐述Java自学过程中的一些关键知识点及学习策略,旨在帮助那些希望通过自学Java来提升技能或寻找职业机会的学习者们。 #### 一、JavaSE基础学习 JavaSE是Java标准版的基础,对于所有...

    浅谈java集合框架

    ### 浅谈Java集合框架 Java集合框架是一个用于存储、操作和检索一组对象的强大工具集。集合框架的设计目的是为了提供一套高效且灵活的数据结构来满足不同的应用需求。本篇文章将详细探讨Java集合框架中的一些核心...

Global site tag (gtag.js) - Google Analytics