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();
}
}
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();
}
}
相关文章推荐
- Java实现二叉查找树的创建、查找、插入、删除、遍历
- 使用JAVA代码来模拟线性链表的相关操作(增加,删除,插入及查找等)
- java 数组实现哈希表的构建,查找,插入,删除
- 二叉搜索树的实现(包含插入、查找、遍历、删除等)【Java版】
- java实现二叉查找树(插入、删除、遍历、查找)
- 二叉搜索树Java实现(查找、插入、删除、遍历)
- 二叉搜索树Java实现(查找、插入、删除、遍历)
- Java 实现二叉搜索树的查找、插入、删除、遍历
- 二叉树的遍历、查找、插入以及删除
- 二叉查找树——查找、插入、删除 思路+代码(Java)
- 跟我学数据结构:(2) 数组的遍历、插入和删除
- JavaScript 数组array 插入[ push() ] 与 删除[ splice() ]
- BST 插入删除查找遍历
- 高级数组,实现特定值的插入、查找、删除等操作
- 二叉树2(二叉查找树的插入、查找、删除、遍历)
- 二叉查找树(查询、插入、遍历、删除)--Java实现
- C语言实现顺序表的插入、删除、查找、遍历等基本操作
- Java数组遍历、求最大值、选择排序、冒泡排序、二分查找
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- java实现单链表的初始化,创建,删除,插入,查找,排序,同项删除,退出等功能