数组是可以存储相同类型变量的数据结构。
//静态创建数组
int[] a=new int[]{1,2,3}; //动态 int[] b={1,2,3};
数组可以通过下标去访问里面的元素也可以修改其里面的元素。
int[] a存放在栈中,new int[]出来的对象放在堆中,数组的下标从0开始的,范围应该在[0,length(1)-1];
如何遍历一个数组
for (int i=0;i<=b.length-1;i++) { System.out.println(b[i]); } for(int s :b) { System.out.println(s); }
存储对象:
如学生的姓名、年龄、学号
public class Student { private String name; private int age; private int NUM; public Student(String name , int age, int Num) { this.name =name; this.age =age; this.NUM =Num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getNUM() { return NUM; } public void setNUM(int NUM) { this.NUM = NUM; } @Override public String toString() { return "{" + "name='" + name + '\'' + ", age=" + age + ", NUM=" + NUM + '}'; } }
这里需要重写它的toString()方法,因为它是一个对象需要将他转换为字符串;
在Main函数打印它
Student[] s =new Student[3]; s[0] =new Student("小明",22,2001); s[1] =new Student("小李",24,2002); s[2] =new Student("小花",25,2004); System.out.println(Arrays.toString(s));
输出结果:
[{name='小明', age=22, NUM=2001}, {name='小李', age=24, NUM=2002}, {name='小花', age=25, NUM=2004}]
二分查找:
public static Boolean Search(int[] arr,int key){ int left =0; Boolean search =false; int right=arr.length-1; while(left<=right) { int mid =(left+right)/2; if (arr[mid]>key){ right =mid-1; }else if (arr[mid]<key){ left=mid+1; } else{ search =true; break; } } return search; }