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; } }