当我们处理少量数据时,可以为需要监视的每个数据使用一个变量。如果我们不知道需要处理多少数据,或者数据很大,则数组非常有用。如果我们在计算中需要许多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
这是因为旧内容{1、3、5}将被丢弃,并被新内容{2、4、6}取代。
还要注意,如果重新初始化,甚至数组的大小也会改变。例如:
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);
}