数组与字符串
数组的基本概念
数组:若干个相同的数据类型的元素按一定顺序排列的集合
栈内存:定义的基本类型的变量和对象的引用变量超出作用域将自动释放
堆内存:存放有new运算符创建的对象和数组,有java虚拟机的自动垃圾回收器来管理
一维数组
一维数组是最简单的数组,其逻辑结构是线性表
一维数组的定义
数据类型[] 数组名;//声明以为数组
数组名 = new 数据类型[个数];//分配内存给数据
数组类Arrays的常用方法,通过java.util.Arrays 调用
| 方法 | 说明 |
|---|---|
| public static int binarySearch(X[] a,X key) | X是任意数据类型。返回key在升序数组a中首次出现的下标,若a中不包含key,则返回负值 |
| public static void sort(X[] a) | X是任意数据类型。对数组a升序排序后仍放在a中 |
| public static void sort(X[] a,int fromIndex,int toIndex) | 对任意类型的数组a中从fromIndex到toIndex-1的元素进行升序排序,其结果仍放在a数组中 |
| public static X[] copyOf(X[] original,int newLength) | 截取任意类型数组original中长度为newLength的数组元素拷贝给调用数组 |
| public static boolean equals(X[] a,X[] a2) | 判断同类型的两个数组a和a2中对应元素值是否相等。若相等则返回true,否则返回false |
public class Main {public static void main(String[] args) {int[] a={1,2,3};System.out.println(Arrays.binarySearch(a,2));}
}
一维数组元素的访问
通过下标索引访问数组
数组名[下标]
import java.io.*;
import java.util.*;public class Main {public static void main(String[] args) {int[] a={1,2,3};System.out.println(a[0]);}
}
一维数组的初始化及应用
数据类型[] 数组名 = {初值0,初值1,...,初值n}
import java.io.*;
import java.util.*;public class Main {public static void main(String[] args) {int[] a={1,2,3};System.out.println(a);}
}
foreach语句与数组
- 格式
for(type element:array)
{System.out.println(element);
}每次从数组array中取出一个元素,自动赋给变量element
- 代码
public class Main {public static void main(String[] args) {int[] a={1,2,3};for(int i: a)System.out.println(i);}
}
多维数组
所谓多维数组,就是数组元素也是数组的数组。
二维数组
- 格式
二维数组声明格式:数据类型[][] 数组名;
数组名 = new 数据类型[行数][列数];数据类型[][] 数组名 = new 数据类型[行数][列数];例子:
int[][] x = new int[2][3];
x.length // x数组的行数
x[0].lengh // 第一行元素的个数
- 代码
package com.company;
import java.io.*;
import java.util.*;public class Main {public static void main(String[] args) {int[][] a = new int[2][3];for(int i=0;i<2;i++)for(int j=0;j<3;j++)a[i][j] = i+j;for(int i=0;i<2;i++)for(int j=0;j<3;j++)System.out.println(a[i][j]);}
}
三维以上的多维数组
例如:
三维数组:int[][][] a;
四维数组:int[][][][] a;
以此类推
字符串
字符串就是一系列字符的序列。
字符串的变量的创建
格式一:
String 变量名;
变量名 = new String("字符串");格式二:
String 变量名 = new String("变量名");
String类的常用方法
| 方法 | 说明 |
|---|---|
| public int length() | 返回字符串的长度 |
| public boolean equals(Object anObject) | 将给定字符串与当前字符串相比较,若两字符串相等,则返回true,否者返回false |
| public String substring(int beginIndex) | 返回字符串中从beginIndex开始的子串 |
| public String substring(int beginIndex,int endIndex) | 返回从beginIndex开始到endIndex-1的子串 |
| public char charAt(int index) | 返回index指定位置的字符 |
| public int indexOf(String str) | 返回str在字符串中第一次出现的位置 |
| public int compareTo(String anotherString) | 若调用该方法的字符串大于参数字符串,则返回大于0的值;若相等,则返回树0;若小于参数字符串,则返回小于0的值 |
| public String replace(char oldChar,char new Char) | 以newChar字符替换字符串中所有oldChar字符 |
| public String trim() | 去掉字符串的首尾空格 |
| public String toLowerCase() | 将字符串中的所有字符都转换为小写字符 |
| public String toUpperCase() | 将字符串中的所有字符都转换为大写字符 |