- 一维数组定义的方式
- 一维数组打印的两种方式
- 将数组以字符串形式输出
- 原数组不变,将数组乘二输出
- 参数传递
- 参数传递图解
- 找出给出的数组中,只出现一次的数字
- 动态数组的生成方式
- 交换两个数组的值
- 注意点:
int[] arr = {}; System.out.print(arr[0]); 报错:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at appear1.main(appear1.java:26)
1.一维数组定义的方式
int [] array = {1,2,3,4};
int [] array2 = new int[]{11,22,33};
int [] array3 = new int[4];//默认是0
2.一维数组打印的两种方式
public static void main(String[] args) {
int [] array = {1,2,3,4};
int [] array2 = new int[]{11,22,33};
int [] array3 = new int[4];//默认是0
array3[0] = 1;
int len = array.length;//属性
System.out.println(len);
//数组打印的两种方式
//法一
for(int i = 0; i <array.length; i++){
System.out.print(array[i]+" ");
}
System.out.println("=================");
//方法二:
for(int val:array){
System.out.print(val+" ");
}
}
3.将数组以字符串形式输出
//打印字符串
public static void main5(String[] args){
int [] array = {1,2,3,6,5};
System.out.print(Arrays.toString(array));
}
4.原数组不变,将数组乘二输出
public static void main(String[] args) {
int[] array ={3,5,6,7};
transform(array);
printArray1(array);
}
public static void printArray1(int[] arr){
for(int i = 0; i <arr.length; i++){
System.out.print(arr[i]);
}
}
public static void transform(int[] arr){
for(int i = 0; i < arr.length; i++){
arr[i] = arr[i]*2;
}
}
5.参数传递
public class Chuandi {
public static void main(String[] args) {
int [] arr = {1,2,3};
func(arr);
System.out.println("arr[0]= " + arr[0]);
}
public static void func(int[] a){
a[0] = 10;
System.out.println("a[0]= " + a[0]);
System.out.println(a[2]);
}
}
//输出结果 arr[0] = 10; arr[0]=10; a[2]=3
6.数组参数传递图解
7.找出给出的数组中,只出现一次的数字 考察 & | ^
思路:两个相同的数字异或为0 0^任何数字为任何数字
public class findOne {
//找出给定数组中出现一次的数字
public static void main(String[] args) {
int[] array = {1,4,3,1,2,4,3};
int ret = 0;
for(int i = 0; i < array.length; i++){
ret ^= array[i];
}
System.out.println(ret);
}
}
8.动态生成数组的方式
import java.util.Arrays;
import java.util.Scanner;
/**
* @program: sixiang
* @description
* @author: wenwen
* @create: 2021-07-07 17:52
**/
//有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
public class appear1 {
public static void appear1(int[] arr){
int x = 0;
for(int i = 0; i < arr.length; i++){
x= x^arr[i];
// System.out.println(x);
}
System.out.println(x);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// int[] array = {1,2,2,1,3};
// appear1(array);
int n = scan.nextInt();
while(scan.hasNext()){
int[] arr = new int [n];
for(int i = 0; i < n; i++){
arr[i]= scan.nextInt();
}
System.out.print(Arrays.toString(arr));
}
}
}
9.交换两个数组的值
import java.util.Arrays;
/**
* @program: sixiang
* @description
* @author: wenwen
* @create: 2021-07-07 19:15
**/
//交换两个数组
public class swapArray {
public static void swap(int[] array1,int[] array2){
for(int i = 0; i < array1.length; i++){
int temp = array1[i];
array1[i] = array2[i];
array2[i] = temp;
}
}
public static void main(String[] args) {
int[] array1 = {1,2,3,4};
int[] array2 = {4,5,6,7,8,9};
swap(array1,array2);
System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));
}
}