Java数组数据类型
数组是多个相同类型的数据的组合,数组中的元素可以是任何类型的数据;
一维数组
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 package com.ahabest.array; 2 public class ArratTest { 3 public static void main(String[] args) { 4 // 一维数组动态的创建 5 char []arrc = new char[6]; 6 String []arrs = new String[6]; 7 //一维数组的赋值 8 arrc[0] = 'a'; 9 arrc[1] = 'b'; 10 arrs[0] = "aa"; 11 arrs[5] = "ee"; 12 //一维数组静态的创建及赋值 13 int []arri = {1,2,3,4,5,6}; 14 double []arrd = {1.0,2.0,3.0,4.0,5.0,6.0}; 15 //一维数组的循环遍历输出 16 for(int i=0;i<arrc.length;i++) { 17 System.out.print(arrc[i]+" "); 18 } 19 System.out.print("\n"); 20 for(int j=0;j<arrs.length;j++) { 21 System.out.print(arrs[j]+" "); 22 } 23 System.out.print("\n"); 24 for(int m=0;m<arri.length;m++) { 25 System.out.print(arri[m]+" "); 26 } 27 System.out.print("\n"); 28 for(int n=0;n<arrd.length;n++) { 29 System.out.print(arrd[n]+" "); 30 } 31 } 32 }
import java.util.Scanner;
public class LinearArray {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
String arr[] = new String[i];
System.out.print("请换行输入");
System.out.print(i);
System.out.println("个字符串:");
for(int a=0;a<arr.length;a++){
arr[a] = sc.nextLine();
}
for(int b=0;b<=arr.length-1;b++){
System.out.println(arr[b]);
}
}
}
//写程序读入十个整数,然后输出这些整数,如果某整数出现多次,那么只输出一次。
package com.ahabest.array;
import java.util.Scanner;
public class $_Sort {
public static void main(String args[]){
int []number = new int[10];
Scanner in = new Scanner(System.in);
System.out.print("请输入十个数:\n");
for (int i = 0;i<10;i++){
number[i] = in.nextInt();
}
System.out.println("输出的结果为:");
System.out.print(number[0]);
for (int i=1;i<10;i++){
boolean b=true;
for(int j=0;j<i;j++){
if (number[i] == number[j])
b=false;
}
if(b == true){
System.out.print(" "+number[i]);
}
}
}
}
//1.计算一维数组的元素和与平均值
public class TheAverageValue {
public static void main(String[] args) {
double in[] = {23,45,65,78,56};
double sum = 0d;
for(int i=0;i<in.length;i++){
sum += in[i];
}
System.out.println(sum);
System.out.println(sum/in.length);
}
}
//2.有一个整数数组请将该序列倒序存放并输出
public class FlashBack {
public static void main(String[] args) {
int in1[] = {1,2,3,4,5,6};
int in2[] = new int[in1.length];
int i,j=0;
for(i=in1.length-1;i>=0;i--){
in2[j] = in1[i];
j++;
}
for(int k=0;k<in2.length;k++){
System.out.println(in2[k]);
}
}
}
//3.无重复元素整数数组与一个整数,如果在数组中, 则输出下标;如果不存在,则输出-1。
public class IndexTest {
public static void main(String[] args) {
int n=100,j = -1;
int in[] = {12,24,100,8,28};
for(int i=0;i<in.length;i++){
if(n == in[i]){
j = i;
break;
}
}
System.out.println(j);
}
}
//4.输出数组元素的最小与最大值
public class MArray {
public static void main(String[] args) {
double d[] = {12.0,23.01,10.0,24.0};
double min = d[0],max = d[0];
for(int i=0;i<d.length;i++){
if(min > d[i]){
min = d[i];
}
if(max < d[i]){
max = d[i];
}
}
System.out.println(min);
System.out.println(max);
}
}
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// 打印所有数组元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// 计算所有元素的总和
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// 查找最大元素
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max);
}
}
For-Each 循环
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);
}
}
}
多维数组
package com.ahabest.array;
public class DyadicArray{
public static void main(String args[]){
//方法一:创建二维数组
int in[][] = {{1,2,3},{4,5},{6,7,8,9}};
//方法二:创建二维数组
String st[][] = new String[3][4];
st[0][0] = "但是";
st[0][1] = "rewwr";
st[0][2] = "dadada";
st[0][3] = "26";
st[1][0] = "发vs地方";
st[1][1] = "rewwr";
st[1][2] = "dadada";
st[1][3] = "28";
st[2][0] = "韩国";
st[2][1] = "rewwr";
st[2][2] = "dadada";
st[2][3] = "98";
//循环遍历数组
for(int i=0;i<in.length;i++){
for(int j=0;j<in[i].length;j++){
System.out.print(in[i][j]+" ");
}
}
System.out.print("\n");
for(int m=0;m<st.length;m++){
for(int n=0;n<st[m].length;n++){
System.out.print(st[m][n]+" ");
}
}
}
}
数组异常
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 package com.ahabest.arrayexception; 2 public class TestArrayException { 3 public static void main(String args[]) { 4 5 //1.数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException 6 byte[] b = new byte[5]; 7 for(int i = 0;i <= b.length;i++) { 8 System.out.println(b[i]); 9 } 10 11 //2.空指针异常: java.lang.NullPointerException 12 String[] s = new String[5]; 13 System.out.println(s[0].toString()); 14 } 15 }
数组算法
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 package com.ahabest.algorithm; 2 public class TestArrayAlgorithm { 3 public static void main(String[] args) { 4 float[] f = new float[] {10.0f,20.0f,30.0f,40.0f}; 5 //最大值 6 float max = f[0]; 7 for(int i = 0;i < f.length;i++) { 8 if(max < f[i]) { 9 max = f[i]; 10 } 11 } 12 System.out.println(max); 13 //最小值 14 float min = f[0]; 15 for(int i = 0;i < f.length;i++) { 16 if(min > f[i]) { 17 min = f[i]; 18 } 19 } 20 System.out.println(min); 21 //求总和 22 float sum = 0.0f; 23 for(int i = 0;i < f.length;i++) { 24 sum += f[i]; 25 } 26 System.out.println(sum); 27 //求平均值 28 float avg = sum / f.length; 29 System.out.println(avg); 30 //复制 31 float [] f1 = new float[4]; 32 for(int i = 0; i < f.length;i++) { 33 f1[i] = f[i]; 34 } 35 //反转及遍历 36 for(int i = f.length-1; i >= 0;i--) { 37 System.out.print(f[i]+" "); 38 } 39 } 40 }
Arrays 类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:
- 给数组赋值:通过 fill 方法。
- 对数组排序:通过 sort 方法,按升序。
- 比较数组:通过 equals 方法比较数组中元素值是否相等。
- 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
序号 | 方法和说明 |
1 | public static int binarySearch(Object[] a, Object key) |
2 | public static boolean equals(long[] a, long[] a2) |
3 | public static void fill(int[] a, int val) |
4 | public static void sort(Object[] a)
|