wonderer's program

          everything will be better
          posts - 19, comments - 6, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          去SA面試的時(shí)候,面試官問(wèn)我平時(shí)用Java的什么數(shù)據(jù)結(jié)構(gòu),答曰:Vector。又問(wèn):哪有用過(guò)其他的的嗎?例如List和Map之類的。答曰:甚少。(自己汗一個(gè),沒(méi)水平)既然不會(huì)就要學(xué)習(xí)啦。

          翻開《Java學(xué)習(xí)筆記》,里面對(duì)對(duì)象容器的描述不錯(cuò)。

          1. ArrayList和LinkedList

          ArrayList使用了數(shù)組結(jié)構(gòu)實(shí)現(xiàn)List的數(shù)據(jù)。所以ArraryList用來(lái)快速定位對(duì)象是非常有效率的。但是如果要對(duì)ArraryList中間插入或者刪除,效率會(huì)非常低。

          LinkedList使用鏈表來(lái)實(shí)現(xiàn)的List。所以跟ArrayList相反,LinkedList對(duì)于插入和刪除是非常有優(yōu)勢(shì),反之對(duì)于快速定位,是LinkedList的弱項(xiàng)。

          1)ArrayListDemo

          public class ArrayListDemo {
              public static void main(String[] args) {
                  
                  //用Scanner類,可以輕松獲得commander的輸入
                  Scanner scanner = new Scanner(System.in);
                  
                  List<String> list = new ArrayList<String>();
                  
                  //在控制臺(tái)輸入,quit退出
                  while(true) {
                      System.out.print("Rokey@console# ");
                      String input = scanner.next();
                      if(input.equals("quit")) {
                          break;
                      }
                      list.add(input);
                  }
                  
                  System.out.print("顯示輸入:");
                  
                  //使用5.0的foreach功能對(duì)List進(jìn)行遍歷
                  for(String s:list) {
                      //5.0的類C的輸出格式
                      System.out.printf("%s ",s);
                  }
              }
          }

          輸出:

          Rokey@console# 一二三
          Rokey@console# 三二一
          Rokey@console# quit
          顯示輸入:一二三 三二一 
          

           

          2)用LinkedList實(shí)現(xiàn)的一個(gè)字符串棧

          /**
           *
           * @author Rokey
           * 用LinkedList構(gòu)建一個(gè)字符棧,先進(jìn)先出
           */
          public class StringStack {
          
              private LinkedList<String> linkList;
          
              public StringStack() {
                  linkList = new LinkedList<String>();
              }
          
              public void push(String s) {
                  //將元素加入鏈表第一個(gè)位置
                  linkList.addFirst(s);
              }
          
              public String pop() {
                  //刪除鏈表第一個(gè)元素,并返回
                  return linkList.removeFirst();
              }
          
              public String top() {
                  //返回鏈表第一個(gè)元素,但并不刪除
                  return linkList.getFirst();
              }
          
              public boolean isEmpty() {
                  //檢查鏈表是否為空
                  return linkList.isEmpty();
              }
          }
          public class StringStackDemo {
          
              public static void main(String[] args) {
          
                  //用Scanner類,可以輕松獲得commander的輸入
                  Scanner scanner = new Scanner(System.in);
          
                  StringStack stack = new StringStack();
          
                  //在控制臺(tái)輸入,quit退出
                  while (true) {
                      System.out.print("Rokey@console# ");
                      String input = scanner.next();
                      if (input.equals("quit")) {
                          break;
                      }
                      stack.push(input);
                  }
          
                  System.out.print("顯示輸入:");
                  //使用5.0的foreach功能對(duì)List進(jìn)行遍歷
                  
                  while(!stack.isEmpty()) {
                      //5.0的類C的輸出格式
                      System.out.printf("%s ", stack.pop());
                  }
              }
          }

          輸出:

          Rokey@console# 一二三
          Rokey@console# 三二一
          Rokey@console# quit
          顯示輸入:三二一 一二三 
          主站蜘蛛池模板: 延吉市| 屯昌县| 富阳市| 化德县| 馆陶县| 洛川县| 江门市| 进贤县| 罗江县| 兴海县| 福贡县| 大连市| 鹤峰县| 武邑县| 梁山县| 铜山县| 钦州市| 元谋县| 江门市| 盱眙县| 治县。| 依安县| 山阴县| 万安县| 贡山| 华蓥市| 漳浦县| 曲沃县| 屯留县| 龙门县| 香港| 唐山市| 定边县| 汉沽区| 安阳市| 赤城县| 梅河口市| 江油市| 稻城县| 乌兰县| 静宁县|