国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java數(shù)據(jù)結(jié)構(gòu)---基于數(shù)組的表

2019-11-18 14:50:24
字體:
供稿:網(wǎng)友

    我沒看過 其他語言版的數(shù)據(jù)結(jié)構(gòu),但覺得java的實(shí)現(xiàn)方法很巧妙--用類和對象來實(shí)現(xiàn).基于數(shù)組的表,思想很簡單就是定義一個(gè)類用來存儲(chǔ)一組數(shù)據(jù),我定義的是ArrayListClass類,在類中定義用來操作數(shù)組的方法.其實(shí)就是 這么簡單,但具體操作起來就會(huì)碰到很多麻煩了!
    我們這個(gè)ArrayListClass類中首先應(yīng)該包括一個(gè)數(shù)組型的域list,用來存放數(shù)據(jù),這樣放在同一數(shù)組中數(shù)據(jù)之間就產(chǎn)生了位置上的聯(lián)系,使對數(shù)據(jù)的操作便的簡單.然而這個(gè)數(shù)組到底是什么數(shù)據(jù)類型的,我們期望這個(gè)表能用于所有的數(shù)據(jù)類型,我們不能將他單純的固定成某一種.所以我們必須將這個(gè)數(shù)據(jù)普通化,解決的辦法就是定義一個(gè)類,作為所有數(shù)據(jù)類型的超類.看這個(gè)DataElement: 
public abstract class DataElement {
 public abstract boolean equals(DataElement otherElement);
 public abstract int compareTo(DataElement otherElement);
 public abstract void makeCopy(DataElement otherElement);
 public abstract DataElement getCopy();
}

將他定義成為抽象的,再在定義其他數(shù)據(jù)類型時(shí)繼續(xù)并實(shí)現(xiàn)它,我定義了兩個(gè)數(shù)據(jù)類型IntElement和StringElement:

IntElement:

public  class IntElement extends DataElement {
 PRotected int num;
 
 //constrUCtors
 public IntElement(){
  num=0;
 }
 public IntElement(int number){
  num=number;
 }
 public IntElement(IntElement otherElement){
  num=otherElement.num;
 }
 
 ///get-set Methods
 public void setNum(int number){
  num=number;
 }
 public int getNum(){
  return num;
 }
 

 /* (non-Javadoc)
  * @see DataElement#equals(DataElement)
  */
 public boolean equals(DataElement otherElement) {
  // TODO Auto-generated method stub
  IntElement newe=(IntElement)otherElement;
  return (this.num==newe.num);
 }

 /* (non-Javadoc)
  * @see DataElement#compareTo(DataElement)
  */
 public int compareTo(DataElement otherElement) {
  // TODO Auto-generated method stub
  IntElement newe=(IntElement)otherElement;
  if(this.num==newe.num)
  return 0;
  else if(this.num>newe.num)
    return 1;
  else 
   return -1;
 }

 /* (non-Javadoc)
  * @see DataElement#makeCopy(DataElement)
  */
 public void makeCopy(DataElement otherElement) {
  // TODO Auto-generated method stub
  IntElement newe=(IntElement)otherElement;
  this.num=newe.num;
  
 }

 /* (non-Javadoc)
  * @see DataElement#getCopy()
  */
 public DataElement getCopy() {
  // TODO Auto-generated method stub
  IntElement newElement=new IntElement();
  newElement.num=this.num;
  return newElement;
 }
 public String toString(){
  return String.valueOf(num);
 }
}

StringElement:

public class StringElement extends DataElement {

 /**
  * 
  */
 private String str;
 
 //constructors
 public StringElement() {
  str=null;
  
 }
 public StringElement(String string){
  str=string;
 }
 public StringElement(StringElement otherElement){
  str=otherElement.str;
 }
 
 //get-set Methods
 public void setStr(String string){
  str=string;
 }
 public String getStr(){
  return str;
 }

 /* (non-Javadoc)
  * @see DataElement#equals(DataElement)
  */
 public boolean equals(DataElement otherElement) {
  // TODO Auto-generated method stub
  StringElement newe=(StringElement)otherElement;
  return (str==newe.str);
 }

 /* (non-Javadoc)
  * @see DataElement#compareTo(DataElement)
  */
 public int compareTo(DataElement otherElement) {
  // TODO Auto-generated method stub
  StringElement newe=(StringElement)otherElement;
 



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 育儿| 札达县| 西安市| 大关县| 阿巴嘎旗| 江油市| 南投市| 饶平县| 通江县| 江都市| 云南省| 东乡县| 卓尼县| 壶关县| 湛江市| 资中县| 临澧县| 信丰县| 甘洛县| 霍山县| 榆树市| 吴旗县| 远安县| 陆河县| 霍山县| 潢川县| 南溪县| 随州市| 科技| 丘北县| 中超| 卓资县| 镇远县| 休宁县| 南郑县| 和田县| 千阳县| 望城县| 梅州市| 鄂州市| 黄骅市|