storing Objects
在上一个例子中,我们存储的对象是原始的数据类型 long
在本文中,我们使用自定义的类,以期更符合我们在现实世界中遇到的情况
首先,自定义一个类 Person
1class Person
2{
3 private string firstName;
4 private string lastName;
5 private int age;
6
7 public Person(string last, string first,int a)
8 {
9 lastName=last;
10 firstName=first;
11 age=a;
12 }
13
14 public void displayPerson()
15 {
16 System.out.print("Last name:"+lastName);
17 System.out.print(",First name:"+firstName);
18 System.out.print(",Age:"+age);
19 }
20
21 public String getLast();
22 {
23 return lastName;
24 }
25}
2{
3 private string firstName;
4 private string lastName;
5 private int age;
6
7 public Person(string last, string first,int a)
8 {
9 lastName=last;
10 firstName=first;
11 age=a;
12 }
13
14 public void displayPerson()
15 {
16 System.out.print("Last name:"+lastName);
17 System.out.print(",First name:"+firstName);
18 System.out.print(",Age:"+age);
19 }
20
21 public String getLast();
22 {
23 return lastName;
24 }
25}
其次,定义 ClassDataArray类 (没有使用二分查找)
1class ClassDataArray
2{
3 private Person[] a;
4 private int nElems;
5
6 public ClassDataArray(int max)
7 {
8 a=new Person[max];
9 nElems=0;
10 }
11
12 public Person find(String searchName)
13 {
14 int j;
15
16 for(j=0;j<nElems;j++)
17 {
18 if(a[j].getLast().equals(searchName))
19 break;
20
21 }
22 if(j==nELems)
23 return null;
24 else
25 return a[j];
26 }
27
28 public void insert(String last,String first, int age)
29 {
30 a[nElems]=new Person(last, first,age);
31 nElems++;
32 }
33
34 public boolean delete(string searchName)
35 {
36 int j;
37 for(j=0;j<nElems;j++)
38 {
39 if(a[j].getLast().equasl(searchName))
40 break;
41
42 }
43 if(j==nElems)
44 return false;
45 else
46 {
47 for(int k=j;k<nElems;k++)
48 {
49 a[k]=a[k+1];
50 }
51 nElems--;
52 return true;
53 }
54 }
55 public void displayA()
56 {
57 for(int j=0;j<nElems;j++)
58 a[j].displayPerson();
59 }
60}
2{
3 private Person[] a;
4 private int nElems;
5
6 public ClassDataArray(int max)
7 {
8 a=new Person[max];
9 nElems=0;
10 }
11
12 public Person find(String searchName)
13 {
14 int j;
15
16 for(j=0;j<nElems;j++)
17 {
18 if(a[j].getLast().equals(searchName))
19 break;
20
21 }
22 if(j==nELems)
23 return null;
24 else
25 return a[j];
26 }
27
28 public void insert(String last,String first, int age)
29 {
30 a[nElems]=new Person(last, first,age);
31 nElems++;
32 }
33
34 public boolean delete(string searchName)
35 {
36 int j;
37 for(j=0;j<nElems;j++)
38 {
39 if(a[j].getLast().equasl(searchName))
40 break;
41
42 }
43 if(j==nElems)
44 return false;
45 else
46 {
47 for(int k=j;k<nElems;k++)
48 {
49 a[k]=a[k+1];
50 }
51 nElems--;
52 return true;
53 }
54 }
55 public void displayA()
56 {
57 for(int j=0;j<nElems;j++)
58 a[j].displayPerson();
59 }
60}