15、数组
数组:最简单的数据结构;
声明:
声明数组并赋值:
public class shuzu {
public static void main(String[] args) {
int[] nums;//声明一个数组
nums=new int[10];//创建,开辟空间
//给数组赋值
nums[0]=1;
nums[1]=2;
nums[2]=3;
nums[3]=4;
nums[4]=5;
nums[5]=6;
nums[6]=7;
nums[7]=8;
nums[8]=9;
nums[9]=10;
for (int i = 0; i < 9; i++) {
System.out.println(nums[i]);
}
//求数组的和
int sum=0;
for (int i = 0; i < nums.length; i++) {
sum=sum+nums[i];
}
System.out.println("总和:"+sum);
}
}
声明数组创建并赋值:
ArrayIndexOutOfBoundsException:数组下标越界异常;
foreach 循环
for(类型 变量名:集合) {
语句块;
}
public class foreachtest { public static void main(String[] args) { int[] arr=new int[]{1,2,3,4,5,6,7,8}; //省略了数组的下标 for (int i:arr) { System.out.println(i); } } }
反转数组
//定义反转数组方法,形参为数组 public static int[] reverse(int[] arr){ //定义方法内部数组,长度使用实参的长度 int[] result = new int[arr.length]; for (int i = 0,j=arr.length - 1; i < arr.length ; i++,j--) { //反转数组 result[i] = arr[j]; } return result; } }
数组倒置
import java.util.Arrays; public class arraytest3 { public static void main(String[] args) { //定义数组 int[] arr=new int[]{1,2,3,4,5,6,7,8,9,}; //使用Arrags类方法输出数组内容 System.out.println(Arrays.toString(arr)); //调用数组倒置方法 trun(arr); //使用Arrags类方法输出数组内容 System.out.println(Arrays.toString(arr)); } public static void trun(int[] arr){ //循环次数为数组长度的1/2 for (int i = 0; i < arr.length/2; i++) { //定义临时变量 int tmp=0; //将数组的第一个值赋值给tmp tmp = arr[i]; //将数组的最后一个,赋值给第一个 arr[i] = arr[arr.length-i-1]; //tmp中存放的值,赋值给数组的最后一个 arr[arr.length-i-1] = tmp; } } }
数组三种初始化方式
public class Array1 { public static void main(String[] args) { int[] arr1=null;//声明数组,int[]为对象,赋值为null arr1=new int[10];//给数组分配空间,在堆中分配空间 //给数组赋值, 动态初始化 for (int i = 0; i < arr1.length; i++) { arr1[i]=i+1; } System.out.println("arr1"+Arrays.toString(arr1)); //默认初始化,指定长度 int[] arr2=new int[10]; System.out.println("arr2"+Arrays.toString(arr2)); //静态初始化 int[] arr3={1,2,3,4,5,6,7,8,9}; System.out.println("arr3"+Arrays.toString(arr3)); System.out.println("######################"); //person数组,赋值给数组元素的值,都是对象的地址 Person[] p1=new Person[]{new Person(10,"liwang"), new Person(11,"daliwang"), new Person(12,"liaoliwang"),}; //打印数组内容 for (Person person:p1 ) { System.out.println("id:"+person.getId()+",name:"+person.getName()); } System.out.println("#########################"); //重写tostring方法打印数组内容 for (Person person:p1 ) { System.out.println(person); } } } //person类 public class Person { private int id; private String name; @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + '}'; } //构造器 public Person(int id, String name) { this.id = id; this.name = name; } //get public int getId(){ return id; } public void setId(int id){ this.id=id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
浙公网安备 33010602011771号