当我们处理少量数据时,可以为需要监视的每个数据使用一个变量。如果我们不知道需要处理多少数据,或者数据很大,则数组非常有用。如果我们在计算中需要许多int值,则Java Integer Array是一个数组对象,其中包含多个Integer值。以下是一些有关如何在Java中使用int数组的示例。
 

整数数组声明

方括号用于在Java中声明Array。我们可以使用两种方式,一种是在数据类型关键字之后,另一种是在变量名称之后。这是有关如何在Java中声明一个int数组的示例:


int [] thisIsAnIntArray1;
int thisIsAnIntArray2 [];


这两个声明均有效。如果要声明一个Integer数组,则下面是对应的内容:
 


Integer [] thisIsAnIntegerArray1;
整数thisIsAnIntegerArray2 [];


以上所有语句将使变量包含空值。没有创建数组对象,只是简单地声明变量而没有为其分配值。
 

具有初始大小的整数数组声明

当我们知道需要多少个对象时,通常会声明数组。因此,数组通常以初始大小声明。这是一个如何声明一个初始大小为int的数组的示例:
 


int [] thisIsAnIntArray = new int [5];
Integer [] thisIsAnIntegerArray = new Integer [5];


请注意,上面的int数组不仅会创建该数组,而且每个项目的值都将为0。这是因为int是原始类型。但是,除非稍后初始化,否则Integer数组的每个元素都将具有空值。

我们可以显式初始化数组的内容:
 


// int
int [] thisIsAnIntrray = new int [5];
thisIsAnIntrray [0] = 5;
thisIsAnIntrray [1] = 15;
thisIsAnIntrray [2] = 25;
thisIsAnIntrray [3] = 35;
thisIsAnIntrray [4] = 45;
// 整数
Integer [] thisIsAnIntegerArray = new Integer [5];
thisIsAnIntegerArray [0] = Integer.valueOf(5);
thisIsAnIntegerArray [1] = Integer.valueOf(15);
thisIsAnIntegerArray [2] = Integer.valueOf(25);
thisIsAnIntegerArray [3] = Integer.valueOf(35);
thisIsAnIntegerArray [4] = Integer.valueOf(45);


一个语句中的整数数组声明和初始化

如果该数组只有很少的内容,我们可以声明一个Integer数组并将其初始化为一行。这是Java int数组的示例:
 


int [] thisIsAnIntArray = {5,12,13,13,17,22,39};


还有一个Java Integer Array的示例:


Integer [] thisIsAnIntegerArray1 = {5,12,13};
Integer [] thisIsAnIntegerArray2 = {Integer.valueOf(5),Integer.valueOf(12),Integer.valueOf(13)};


请注意,第一条语句使用纯整数。这是因为Java的自动装箱功能会自动将int转换为Integer。

一起声明和初始化Integer数组的另一种语法是使用new运算符。这是一个例子:


int [] thisIsAnIntArray = new int [] {5,12,13,13,22,39};
Integer [] thisIsAnIntegerArray1 = new Integer [] {5,12,13};
Integer [] thisIsAnIntegerArray2 = new Integer [] {Integer.valueOf(5),Integer.valueOf(12),Integer.valueOf(13)};


声明后的整数数组初始化

初始化数组的代码可以与声明代码分开。当声明期间不知道值时,这很有用。这是在声明后初始化int数组的示例:
 


int [] thisIsAnIntArray;
如果(isOdd){
    thisIsAnIntArray = new int [] {1,3,5,7,9};
} 别的 {
    thisIsAnIntArray = new int [] {2,4,6,8,8 10};
}


请注意,数组的值取决于isOdd变量的值。

请注意,初始化数组将覆盖数组的旧内容。例如


int [] thisIsAnIntArray = new int [] {1,3,5};
thisIsAnIntArray = new int [] {2,4,6};
System.out.println(thisIsAnIntArray [0]);
System.out.println(thisIsAnIntArray [1]);
System.out.println(thisIsAnIntArray [2]);


该代码将在下面显示输出。


2
4
6


这是因为旧内容{135}将被丢弃,并被新内容{246}取代。

还要注意,如果重新初始化,甚至数组的大小也会改变。例如:


int [] thisIsAnIntArray = new int [] {1,3,5};
thisIsAnIntArray = new int [] {2,4};
System.out.println(thisIsAnIntArray [0]);
System.out.println(thisIsAnIntArray [1]);
System.out.println(thisIsAnIntArray [2]);


将具有以下输出:











线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:2

在ArrayTest.main(ArrayTest.java:10)


例外是因为thisIsAnIntArray变量在第二次初始化后将只有2个元素。
 

整数数组长度/大小

数组的属性长度可用于确定数组中元素的数量。这是一个示例用法:
 


int [] thisIsAnIntArray = new int [] {1,3,5};
System.out.println(thisIsAnIntArray.length);


这将具有输出:
 


3


因为在声明的int数组中有3个元素。
 

遍历整数数组

由于整数数组的大小和内容可能会有所不同,因此遍历所有值很有用。这是一个使用样式的示例代码,该样式可以在Java 5之前运行。


int [] thisIsAnIntArray = new int [] {1,3,5};
for(int i = 0; i <thisIsAnIntArray.length; i ++)
{
    int元素= thisIsAnIntArray [i];
    System.out.println(element);    
}


该代码将从索引0开始,一直到长度-1,这是数组的最后一个元素。该代码将在Java 5之前或之后的任何版本的Java上运行

该代码将具有输出:


1个
3
5


另一种方法是使用Java 5的增强的for循环。例如:


int [] thisIsAnIntArray = new int [] {1,3,5};
for(int元素:thisIsAnIntArray)
{
    System.out.println(element);    
}


该代码将具有与前面的示例相同的输出:
 

测试整数数组是否包含值

当我们有一个整数数组时,可以使用以下代码检查数组中是否有值:
 


int [] thisIsAnIntArray = new int [] {1,3,5};
int intToSearch = 3;

布尔值发现=假;

for(int element:thisIsAnIntArray){
    if(element == intToSearch){
发现=真;
    }
}
如果(找到){
    System.out.println(“数组包含整数:” + intToSearch);
} 别的 {
    System.out.println(“数组不包含整数:” + intToSearch);
}


此代码将遍历数组,并逐一检查元素是否等于要搜索的项目。代码的输出将是:


数组包含整数:3


排序整数数组

当我们有一组项目时,通常会遇到排序问题。我们可以基于一些众所周知的算法来实现。这是一个如何使用冒泡排序对Java中的整数数组进行排序的示例:
 


导入java.util.Arrays;

/ **
 *在Java中对整数数组进行排序的简单程序。
 * /
公共类SortIntArrayInJava {
公共静态void bubbleSort(int [] arr){
      int j = 0;
      int tmp;
布尔排序=假;
      while(!sorted){
排序= true;
         j ++;
         for(int i = 0; i <arr.length-j; i ++){
如果(arr [i]> arr [i + 1]){
               tmp = arr [i];
               arr [i] = arr [i + 1];
               arr [i + 1] = tmp;
排序=假;
            }
         }
      }
   }

公共静态

void main(String [] args){
      int [] thisIsAnIntArray = {5,1,100,50,75,12,89,51,11,28,99};
      bubbleSort(thisIsAnIntArray);
      System.out.println(Arrays.toString(thisIsAnIntArray));
   }
}


该代码将按升序输出数组中的Integers。


[1、5、11、12、28、50、51、75、89、99、100]


Java具有针对此常见编程问题的内置解决方案。我们可以在java.util.Arrays实用程序类中使用sort方法。这是上面使用Arrays.sort()方法的代码的简化示例:
 


导入java.util.Arrays;
/ **
 *在Java中对整数数组进行排序的简单程序。
 * /
公共类SortIntArrayInJava {
公共静态void main(String [] args){
      int [] thisIsAnIntArray = {5,1,100,50,75,12,89,51,11,28,99};
      Arrays.sort(thisIsAnIntArray);
      System.out.println(Arrays.toString(thisIsAnIntArray));
   }
}


和输出将是相同的。
 

将整数数组转换为字符串

出于不同的目的,我们可能需要将Integer Array转换为String。实用程序类java.util.Arrays为此提供了一种便捷方法。这是转换的示例代码:
 


导入java.util.Arrays;
/ **
 *一个将整数数组转换为字符串的简单程序。
 * /
公共类ConvertArrayInJava {
公共静态void main(String [] args){
      int [] thisIsAnIntArray = {5,6,7,8};
字符串theString = Arrays.toString(thisIsAnIntArray);
      System.out.println(theString);
   }
}


这将是输出:


[5,6,7,8]


元素在转换后的字符串中用逗号分隔,并括在方括号中。

如果您喜欢自定义行为,我们可以自己实施转化


/ **
 *一个简单的程序,可将自定义行为将整数数组转换为字符串。
 * /
公共类SortIntArrayInJava {
公共静态void main(String [] args){
      int [] thisIsAnIntArray = {5,6,7,8};
字符串分隔符=“-”;
      StringBuilder sb = new StringBuilder();
      for(int element:thisIsAnIntArray){
如果(sb.length()> 0){
              sb.append(定界符);
          }
          sb.append(element);
      }
字符串theString = sb.toString();
      System.out.println(theString);
   }
}


输出将使用不带方括号的定界符破折号:


5-6-7-8


将整数数组转换为列表

数组是固定大小的。因此,使用List更方便。这是一个如何在Java中将int数组转换为List的示例。


Integer [] thisIsAnIntArray = {5,6,7,8};
List <Integer> intList = Arrays.asList(thisIsAnIntArray);


请注意,阅读asList的Javadoc表示:

返回由指定数组支持的固定大小的列表。(对返回列表的更改为直写到数组。)与Collection.toArray结合使用,此方法充当基于数组的API和基于集合的API之间的桥梁。返回的列表是可序列化的,并实现RandomAccess

这意味着将项目添加到返回的列表将引发异常:


Integer [] thisIsAnIntArray = {5,6,7,8};
List <Integer> intList = Arrays.asList(thisIsAnIntArray);
intList.add(Integer.valueOf(10));


运行此命令时,将遇到java.lang.UnsupportedOperationException

为避免此问题,我们可以将Integer Array专门转换为ArrayList。以下是有关如何执行此操作的示例代码:


Integer [] thisIsAnIntArray = {5,6,7,8};
List <Integer> fixedList = Arrays.asList(thisIsAnIntArray);
List <Integer> intList =新的ArrayList <Integer>(fixedList);
intList.add(Integer.valueOf(10));


现在,该代码将不会引发异常。
 

将整数数组转换为Set

集合和列表之间的区别在于,集合仅包含唯一值。因此,如果我们只希望集合中的元素没有重复项(唯一),则Set是一个更合适的数据结构。这是有关如何将整数数组转换为集合的示例代码:


Integer [] thisIsAnIntArray = {5,6,5,8};
List <Integer> intList = Arrays.asList(thisIsAnIntArray);
Set <Integer> intSet =新的HashSet <Integer>(intList);
System.out.println(“列表的大小为:” + intList.size());
System.out.println(“集合的大小为:” + intSet.size());


输出将是:
 


列表的大小是:4

套装的大小是:3


该清单将有四个项目,如声明中所列举。但是由于有两个5,所以该集合将只有3个元素。
 

将列表转换为整数数组

如果我们想要上面示例的相反行为,则还可以将List转换回Integer Array。以下是将List转换为int Array的示例代码:


List <Integer> intList =新ArrayList <Integer>();
intList.add(5);
intList.add(10);
intList.add(15);
Integer [] intArr = intList.toArray(new Integer [] {});
for(Integer element:intArr){
    System.out.println(element);
}