标签:myList nums int 知识 ++ length 数组 Java
数组整理
文章目录
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java 语言中提供的数组是用来存储固定大小的同类型元素。
一、声明数组变量
首先必须声明数组变量,才能在程序中使用数组。
语法:
数据类型[] 变量名; // 首选的方法
或
数据类型 变量名[]; // 效果相同,但不是首选方法
实例:
double[] myList; // 首选的方法
或
double myList[]; // 效果相同,但不是首选方法
二、创建数组
Java语言使用new操作符来创建数组
语法:
数据类型[] 变量名 = new 数据类型[数组长度];
或
数据类型[] 变量名 = {value0, value1, ..., valuek};
数组的元素是通过索引访问的。
数组索引从 0 开始,索引值从 0 到 数组的长度-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
三、处理数组
数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 For-Each 循环。
普通循环示例:
该实例完整地展示了如何创建、初始化和操纵数组:
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);
}
}
---结果:
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
For-Each 循环实例:
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);
}
}
}
---结果:
1.9
2.9
3.4
3.5
四、数组作为函数的参数
数组可以作为参数传递给方法。
实例:
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
调用 printArray 方法
printArray(new int[]{3, 1, 2, 6, 4, 2});
---结果:
3
1
2
6
4
2
五、数组作为函数的返回值
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
result[j] = list[i];
}
return result;
}
六、多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
实例:
String s[][] = new String[2][3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");
七、Arrays 类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
- 给数组赋值:通过 fill 方法。
- 对数组排序:通过 sort 方法,按升序。
- 比较数组:通过 equals 方法比较数组中元素值是否相等。
- 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
八、数组的简单实用
1、找最大值
int[] salary = {4,5,0,6,7,8};
int maxIndex = 0 ;
for (int i = 1; i < salary.length; i++) {
if(salary[i] > salary[maxIndex]){
maxIndex = i;
}
}
System.out.println("经过了n轮比赛得到的最大值得下标是:"+maxIndex+"。值是:"+salary[maxIndex]);
2、查找一个数组里存在的值。
int targetIndex = -1;
for (int i = 0; i < salary.length; i++) {
if(salary[i] == 9){
targetIndex = i;
}
}
3、元素的位移。
int[] salary = {4,5,0,6,7,8};
int temp = salary[0];
salary[0] = salary[1];
salary[1] = temp;
4、选择排序法
每一轮都是在找一个最小值放在未拍好序的元素的第一个
int[] nums = {4,6,0,8,7};
for (int j = 0 ; j < nums.length -1 ; j++){
int minIndex = j;
for (int i = j+1; i < nums.length; i++) {
minIndex = nums[i] < nums[minIndex] ? i : minIndex;
}
int temp = nums[minIndex];
nums[minIndex] = nums[j];
nums[j] = temp;
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
5、冒泡排序法
每一轮都是两两相比,会将最大的冒到最后边
int[] nums = {3, 7, 4, 9, 5, 4, 1};
for (int j = 0; j < nums.length - 1 ; j++) {
for (int i = 0; i < nums.length - 1 -j ; i++) {
if (nums[i] > nums[i + 1]) {
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
标签:myList,nums,int,知识,++,length,数组,Java 来源: https://blog.csdn.net/qq_43658155/article/details/104806286
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。