Java0608-node
目录
- Java0608-node
- 1 数组
- 1.1概念
- 1.2 数组的使用
- 1.3使用场景
- 1.4应用
- 2 二维数组
-
1 数组
1.1概念
数组是指内存中一块连续的空间,数量固定且存储类型相同
特点:
- 长度:指数组中最多可以存储几个数据
- 数组名:链接到数组第一个值的存储地址,可以据此快速找到数组中的数据
- 元素:数组中存储的数据
- 数组的数据类型:数组中所存储的数据的数据类型
- 下标:索引数组内下标位置的值(从0开始到数组长度-1),若超过数组长度,会引发数组下标越界异常
1.2 数组的使用
int[] names;
String strs[];
names = new int[7];
strs = new String[3];
char[] char1 = new char[2];
int len = char1.length;
System.out.println(len);
int num1 = names[0];
System.out.println(num1);
names[0] = 123;
names[2] = 124;
int[] array = {1,2,3,4,5};
System.out.println(array.length);
System.out.println(array[3]);
char[] char2;
char2 = new char[]{'1','b'};
Scanner input = new Scanner(System.in);
for(int i=0;i<=array.length-1;i++){
System.out.print("请输入:");
array[i] = input.nextInt();
}
for(int n:array){
System.out.print(n+" ");
}
a = b;
1.3使用场景
多个相同类型的数组的存储
1.4应用
- 查找
12、23、34、45、56——34
二分查找
Arrays.binarySearch(数组名,需要查找的值/变量);
找不到时,返回的值不固定
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
int[] array = new int[100];
int left = 0;
int len = array.length;
int right = len-1;
int mid = (left+right)/2;
Scanner input = new Scanner(System.in);
System.out.print("输入您要找的值:");
int num = input.nextInt();
for(int i=0;i<len;i++) {
array[i]=i*i-34;
}
for(int n:array) {
System.out.print(n+" ");
}
while(left<=right) {
if(array[mid]==num) {
System.out.println("已找到"+num);
break;
}else if(array[mid]>num){
right = mid-1;
mid = (left+right)/2;
}else {
left = mid+1;
mid = (left+right)/2;
}
}
if(left>right) {
System.out.println("未找到"+num);
}
}
}
-
求最值
-
冒泡排序(升序)
相邻两数比较,小的在前,大的在后,不符合时,交换,直到不需要交换为止
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入10个数:");
int[] nums = new int[10];
int len = nums.length;
int frequency = len-1;
for (int i = 0; i < len; i++) {
nums[i] = input.nextInt();
}
for(int i=0;i<frequency;i++) {
boolean flag = false;
for(int j=0;j<frequency-i;j++) {
if(nums[j]>nums[j+1]) {
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
flag = true;
}
}
System.out.println("执行趟数:"+(i+1));
if(!flag) {
break;
}
}
for (int i : nums) {
System.out.print(i+" ");
}
System.out.println("--------------------------");
for(int i=0;i<frequency;i++) {
boolean flag = false;
for(int j=0;j<frequency-i;j++) {
if(nums[j]<nums[j+1]) {
int count = nums[j];
nums[j] = nums[j+1];
nums[j+1] = count;
flag = true;
}
}
System.out.println("执行趟数:"+(i+1));
if(!flag) {
break;
}
}
for (int i : nums) {
System.out.print(i+" ");
}
}
}
-
插入
-
选择排序
-
插入排序
-
java提供的现成方法
Arrays.sort(nums);//升序
2 二维数组
2.1二维数组的创建
int[][] num1 = new int[5][5];
for(int i=0;i<nums.length;i++) {
for(int j=0;j<nums[i].length;j++) {
nums[i][j] = input.nextInt();
}
}
int[] nums1 = new int[5];
int[] nums2 = new int[5];
int[] nums3 = {0,0,1,1,1};
int[] nums4 = {4,5,6,7,8};
int[] nums5 = {4,5,6,7,8};
int[][] num2 = {nums1,nums2,nums3,nums4};
int[][] num = new int[4][];
int[] nums6 = {0,1,2};
int[] nums7 = {3,4,5};
int[] nums8 = {6,7,8};
int[][] num3 = {nums6,nums7,nums8};
System.out.println(Arrays.toString(nums6));
System.out.println(num3);
System.out.println(Arrays.toString(num3));
System.out.println(Arrays.deepToString(nums));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)