java数组从0还是1开始_从0开始说java(3.3)数组和字符串

本文详细介绍了Java数组的概念、特点以及如何声明、创建和初始化数组。同时提供了遍历数组、多维数组的示例代码,以及使用java.util.Arrays类进行数组操作的方法。

数组的定义:

数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。数组的三个基本特点:

1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

2. 其元素必须是相同类型,不允许出现混合类型。

3. 数组类型可以是任何数据类型,包括基本类型和引用类型。

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

接下来将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。

声明数组

dataType[] arrayRefVar; // 首选的方法

dataType arrayRefVar[]; // 效果相同,但不是首选方法

ps:建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。

创建数组(数组初始化)

Java语言使用new操作符来创建数组,语法如下:

dataType[] arrayRefVar = new dataType[arraySize];

dataType[] arrayRefVar = {value0, value1, ..., valuek};

ps:数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。

测试:

public class TestArray {

public static void main(String[] args) {

// 数组大小

int size = 10;

// 定义数组

double[] myList = new double[size];

myList[0] = 5.6;

myList[1] = 4.5;

myList[2] = 3.3;

myList[3] = 13.2;

myList[4] = 4.0;

myList[5] = 34.33;

myList[6] = 34.0;

myList[7] = 45.45;

myList[8] = 99.993;

myList[9] = 11123;

// 计算所有元素的总和

double total = 0;

for (int i = 0; i < size; i++) {

total += myList[i];

}

System.out.println("总和为: " + total);

}

}

结果:

总和为: 11367.373

eda04d614b05

image.png

遍历数组

很多人喜欢用for (int i = 0; i < myList.length; i++) 来遍历数组,其实如果不是需要精确控制数组的话,只是遍历,那更推荐下面一种方式

for(type element: array)

{

System.out.println(element);

}

public class TestArray {

public static void main(String[] args) {

double[] myList = {1.9, 2.9, 3.4, 3.5};

for (double element: myList) {

System.out.println(element);

}

}

}

多维数组

String s[][] = new String[2][3];

s[0][0] = new String("Good");

s[0][1] = new String("Luck");

s[0][2] = new String(",");

s[1][0] = new String("to");

s[1][1] = new String("you");

s[1][2] = new String("!");

多维数组应该很容易理解,想象成x,y坐标系即可,这里就不做太多说明了。遍历二维数组也很容易,如果你是传统派,那么嵌套的for循环即可

for(int i=0;i

for(int j=0;j

System.out.println(s[i][j]);

}

如果你向我一样喜欢优雅简洁的写法,可以这样写

for(String[] strout:s) {

for(String strin:strout) {

System.out.println(strin);

}

}

以上为遍历数组,其实java还有一个接口称之为迭代器,如果一个类继承了该接口,遍历数组或者容器都会更加方便。具体的我们说到Collection的时候再去讲。

java.util.Arrays类

JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。

今天我们用两个,打印数组和数组自动排序

打印数组

import java.util.Arrays;

public class Test {

public static void main(String args[]) {

int[] a = { 1, 2 };

System.out.println(a); // 打印数组引用的值(即内存地址);

System.out.println(Arrays.toString(a)); // 打印数组元素的值;

}

}

eda04d614b05

image.png

ps: 此处的Arrays.toString()方法是Arrays类的静态方法,不是前面讲的Object的toString()方法。

数组自动排序

import java.util.Arrays;

public class Test {

public static void main(String args[]) {

int[] a = {1,2,323,23,543,12,59};

System.out.println(Arrays.toString(a));

Arrays.sort(a);

System.out.println(Arrays.toString(a));

}

}

eda04d614b05

image.png

字符串定义

String类又称作不可变字符序列。

String位于java.lang包中,Java程序默认导入java.lang包下的所有类。

Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符’J’、’a’、’v’、’a’组成的。

Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。

String e = "" ; // 空字符串

String greeting = " Hello World ";

字符串连接

String s1 = "Hello";

String s2 = "World! ";

String s = s1 + s2; //HelloWorld!

符号"+"把两个字符串按给定的顺序连接在一起,并且是完全按照给定的形式。

当"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

"+"连接符

int age = 18;

String str = "age is" + age; //str赋值为"age is 18"

//这种特性通常被用在输出语句中:

System.out.println("age is" + age);

字符串判断相等

equals方法用来检测两个字符串内容是否相等。如果字符串s和t内容相等,则s.equals(t)返回true,否则返回false。

要测试两个字符串除了大小写区别外是否是相等的,需要使用equalsIgnoreCase方法。

判断字符串是否相等不要使用"=="。

public class TestStringEquals {

public static void main(String[] args) {

String g1 = "xuxiao";

String g2 = "xuxiao";

String g3 = new String("xuxiao");

System.out.println(g1 == g2); // true 指向同样的字符串常量对象

System.out.println(g1 == g3); // false g3是新创建的对象

System.out.println(g1.equals(g3)); // true g1和g3里面的字符串内容是一样的

}

}

eda04d614b05

img.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值