您的位置:首页 > 编程语言 > Java开发

java 模拟数组(Array)的查找、插入、删除、遍历

2011-09-25 10:44 459 查看
package binary;

public class Person {

private String lastName;

private String firstName;

private int age;

public Person(String ln,String fn,int age){

this.lastName=ln;

this.firstName=fn;

this.age=age;

}

public void displayPerson(){

System.out.println("姓:"+this.lastName);

System.out.println("名:"+this.firstName);

System.out.println("年龄:"+this.age);

}

public String getLast(){

return lastName;

}

}

class ClassDataArray{

//reference to array

private Person[] perArray;

//number of data item

private int nItems;

/**

* construct perArray[]

* @param maxLength

*/

public ClassDataArray(int maxLength){

this.perArray=new Person[maxLength];

this.nItems=0;

}

/**

* find searchKey from array

* @param searchName

* @return person

*/

public Person find(String searchName){

//find specified value

int j;

//for each element

for(j=0;j<nItems;j++){

//found item

if(perArray[j].getLast().equals(searchName)){

//exit loop before end

break;

}

}

//gone to end

if(j==nItems){

//yes,can't find it

return null;

}else{

//no,found it

return perArray[j];

}

}

/**

* delete a element from array

* @param searchName

* @return

*/

public boolean delete(String searchName){

//delete person from perArray

int j=0;

for(j=0;j<nItems;j++){

if(perArray[j].getLast().equals(searchName)){

break;

}

}

//can't find it

if(j==nItems){

return false;

}else{

//shift down

for (int k = j; k < nItems; k++) {

if((k+1)==nItems){

break;

}

perArray[k]=perArray[k+1];

}

//decrement size

nItems--;

return true;

}

}

public void insert(String ln,String fn,int age){

perArray[nItems]=new Person(ln,fn,age);

nItems++;

}

/**

* display array contents

*

*/

public void displayA(){

//for each elements

for (int i = 0; i < nItems; i++) {

perArray[i].displayPerson();

}

}

}

package binary;

public class ClassDataApp {

public static void main(String[] args) {

//array size

int maxSize=10;

//reference to array

ClassDataArray arr=new ClassDataArray(maxSize);

//int 10 items

arr.insert("tfq1", "tn1", 10);

arr.insert("tfq2", "tn2", 10);

arr.insert("tfq3", "tn3", 10);

arr.insert("tfq4", "tn4", 10);

arr.insert("tfq5", "tn5", 10);

arr.insert("tfq6", "tn6", 10);

arr.insert("tfq7", "tn7", 10);

arr.insert("tfq8", "tn8", 10);

arr.insert("tfq9", "tn9", 10);

arr.insert("tfq10", "tn10",10);

//display array elements

arr.displayA();

//searchName

String searchName="tfq5";

Person p=arr.find(searchName);

if(p!=null){

p.displayPerson();

}else{

System.out.println("no find it!");

}

System.out.println("--------------------");

//delete three elements

arr.delete("tfq6");

arr.delete("tfq7");

arr.delete("tfq8");

arr.displayA();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: