JavaSE第09篇:API之ArrayList及綜合案例

本篇我們將學(xué)習(xí)一個(gè)集合類之ArrayList類,該類可以使我們對(duì)一組元素輕松的實(shí)現(xiàn)增刪改查。在實(shí)際開(kāi)發(fā)中佩番,我們開(kāi)發(fā)的任何項(xiàng)目掐松,最基本的操作就是增刪改查踱侣。所以本篇我們也將會(huì)通過(guò)一個(gè)簡(jiǎn)單的綜合案例之學(xué)生管理系統(tǒng),體會(huì)一下項(xiàng)目中最基本的操作增刪改查大磺。

第一章:ArrayList

1.1-為什么要學(xué)習(xí)ArrayList(了解)

我們看一個(gè)簡(jiǎn)單的需求:有一組數(shù)據(jù)(如:學(xué)生姓名)抡句,向這一組數(shù)據(jù)中繼續(xù)添加數(shù)據(jù),添加個(gè)數(shù)不確定量没。

對(duì)于一組數(shù)據(jù)玉转,我們可能首先想到的是數(shù)組。用數(shù)組存儲(chǔ)一組字符串殴蹄,這個(gè)數(shù)組的長(zhǎng)度是固定的究抓,但是未來(lái)添加的個(gè)數(shù)是不確定的猾担,所以數(shù)組有一定的局限性,并且對(duì)于數(shù)組中元素的操作(增刪改查)相對(duì)比較麻煩刺下,并沒(méi)有直接的API方法讓我們快速實(shí)現(xiàn)對(duì)數(shù)組元素的增刪改查绑嘹。

好消息是java中提供了一個(gè)新的集合類,這個(gè)集合類的長(zhǎng)度是動(dòng)態(tài)變化的橘茉,并且提供了API方法工腋,能讓我們快速實(shí)現(xiàn)對(duì)一組元素的增刪改查。這個(gè)類就是ArrayList

1.2-ArrayList概述(了解)

ArrayList是一種集合畅卓,是大小可變的數(shù)組的實(shí)現(xiàn)擅腰,存儲(chǔ)在內(nèi)的數(shù)據(jù)稱為元素。此類提供一些方法來(lái)操作內(nèi)部存儲(chǔ)

的元素翁潘。 ArrayList 中可不斷添加元素趁冈,其大小(集合長(zhǎng)度)也自動(dòng)增長(zhǎng)拜马。

1.3-創(chuàng)建ArrayList(記憶)

導(dǎo)包:java.util.ArrayList;

創(chuàng)建方式1:ArrayList<E> 變量名 = new ArrayList<>()

創(chuàng)建方式2:ArrayList<E> 變量名 = new ArrayList()

  • E 表示集合中未來(lái)要存放的數(shù)據(jù)類型渗勘,比如存放一組字符串,就是ArrayList<String>
import java.util.ArrayList;

public class Test08 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
    }
}

1.4-操作ArrayList(記憶)

常用的成員方法

image-20200722150520729.png

代碼

import java.util.ArrayList;

public class Test08 {
    public static void main(String[] args) {
        // 創(chuàng)建集合俩莽,可以存儲(chǔ)一組字符串
        ArrayList<String> list = new ArrayList<>();
        // 添加元素
        list.add("張三");
        list.add("李四");
        System.out.println(list.toString());  //輸出結(jié)果:[張三, 李四]
        // 向索引為1的位置添加元素
        list.add(1,"小三");
        System.out.println(list.toString()); // 輸出結(jié)果:[張三, 小三, 李四]
        // 輸出集合的長(zhǎng)度
        System.out.println(list.size());     // 輸出結(jié)果:3
        // 獲取索引為1的元素
        System.out.println(list.get(1));     // 輸出結(jié)果:小三
        // 設(shè)置索引為1的元素為“王五”
        list.set(1,"王五");
        System.out.println(list.toString()); // 輸出結(jié)果:[張三, 王五, 李四]
        // 移除
        list.remove("王五");
        System.out.println(list.toString()); // 輸出結(jié)果:[張三, 李四]
        // 遍歷(for循環(huán)遍歷)
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }


    }
}

第二章:案例

2.1-案例1(練習(xí))

需求:

創(chuàng)建一個(gè)存儲(chǔ)學(xué)生對(duì)象的集合旺坠,存儲(chǔ)3個(gè)學(xué)生對(duì)象,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該集合扮超。

學(xué)生信息有姓名和年齡取刃。

分析:

/*
    思路:
        1:定義學(xué)生類
        2:創(chuàng)建集合對(duì)象
        3:創(chuàng)建學(xué)生對(duì)象
        4:添加學(xué)生對(duì)象到集合中
        5:遍歷集合,采用通用遍歷格式實(shí)現(xiàn)
 */

代碼

學(xué)生類Student

package www.penglei666.com.demo01;

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}

操作測(cè)試類StudentManger

package www.penglei666.com.demo01;

import java.util.ArrayList;

public class StudentManger {
    public static void main(String[] args) {
        // 創(chuàng)建集合
        ArrayList<Student> list = new ArrayList<>();
        // 創(chuàng)建學(xué)生對(duì)象
        Student stu1 = new Student("張三",10);
        Student stu2= new Student("李四",12);
        Student stu3 = new Student("王五",11);
        // 向集合中添加元素
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        // 遍歷集合
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName() + "," + stu.getAge());
        }
    }
}

2.2-案例2(練習(xí))

需求:

創(chuàng)建一個(gè)存儲(chǔ)學(xué)生對(duì)象的集合瞒津,存儲(chǔ)3個(gè)學(xué)生對(duì)象蝉衣,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該集合

學(xué)生的姓名和年齡來(lái)自于鍵盤錄入。

分析:

/*
    思路:
        1:定義學(xué)生類巷蚪,為了鍵盤錄入數(shù)據(jù)方便病毡,把學(xué)生類中的成員變量都定義為String類型
        2:創(chuàng)建集合對(duì)象
        3:鍵盤錄入學(xué)生對(duì)象所需要的數(shù)據(jù)
        4:創(chuàng)建學(xué)生對(duì)象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量
        5:往集合中添加學(xué)生對(duì)象
        6:遍歷集合屁柏,采用通用遍歷格式實(shí)現(xiàn)
 */

代碼

學(xué)生類同上案例1

操作測(cè)試類

public class StudentManger {
    public static void main(String[] args) {
        //創(chuàng)建集合對(duì)象
        ArrayList<Student> array = new ArrayList<Student>();

        //為了提高代碼的復(fù)用性啦膜,我們用方法來(lái)改進(jìn)程序
        addStudent(array);
        addStudent(array);
        addStudent(array);

        //遍歷集合,采用通用遍歷格式實(shí)現(xiàn)
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getName() + "," + s.getAge());
        }
    }

    /*
        兩個(gè)明確:
            返回值類型:void
            參數(shù):ArrayList<Student> array
     */
    public static void addStudent(ArrayList<Student> array) {
        //鍵盤錄入學(xué)生對(duì)象所需要的數(shù)據(jù)
        Scanner sc = new Scanner(System.in);

        System.out.println("請(qǐng)輸入學(xué)生姓名:");
        String name = sc.nextLine();

        System.out.println("請(qǐng)輸入學(xué)生年齡:");
        String age = sc.nextLine();

        //創(chuàng)建學(xué)生對(duì)象淌喻,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量
        Student s = new Student();
        s.setName(name);
        s.setAge(age);

        //往集合中添加學(xué)生對(duì)象
        array.add(s);
    }
}

2.3-學(xué)生信息管理系統(tǒng)(綜合練習(xí))

需求:

針對(duì)目前我們的所學(xué)內(nèi)容僧家,完成一個(gè)綜合案例:學(xué)生管理系統(tǒng)!該系統(tǒng)主要功能如下:

  • 添加學(xué)生:通過(guò)鍵盤錄入學(xué)生信息裸删,添加到集合中

  • 刪除學(xué)生:通過(guò)鍵盤錄入要?jiǎng)h除學(xué)生的學(xué)號(hào)八拱,將該學(xué)生對(duì)象從集合中刪除

  • 修改學(xué)生:通過(guò)鍵盤錄入要修改學(xué)生的學(xué)號(hào),將該學(xué)生對(duì)象其他信息進(jìn)行修改

  • 查看學(xué)生:將集合中的學(xué)生對(duì)象信息進(jìn)行展示

  • 退出系統(tǒng):結(jié)束程序

實(shí)現(xiàn)步驟:

  1. 定義學(xué)生類,包含以下成員變量

    • private String sid // 學(xué)生id

    • private String name // 學(xué)生姓名

    • private String age // 學(xué)生年齡

    • private String address // 學(xué)生所在地

  2. 學(xué)生管理系統(tǒng)主界面的搭建步驟

    • 2.1 用輸出語(yǔ)句完成主界面的編寫
    • 2.2 用Scanner實(shí)現(xiàn)鍵盤輸入
    • 2.3 用switch語(yǔ)句完成選擇的功能
    • 2.4 用循環(huán)完成功能結(jié)束后再次回到主界面
  3. 學(xué)生管理系統(tǒng)的添加學(xué)生功能實(shí)現(xiàn)步驟

    • 3.1 定義一個(gè)方法肌稻,接收ArrayList<Student>集合
    • 3.2 方法內(nèi)完成添加學(xué)生的功能
      • ①鍵盤錄入學(xué)生信息
      • ②根據(jù)錄入的信息創(chuàng)建學(xué)生對(duì)象
      • ③將學(xué)生對(duì)象添加到集合中
      • ④提示添加成功信息
    • 3.3 在添加學(xué)生的選項(xiàng)里調(diào)用添加學(xué)生的方法
  4. 學(xué)生管理系統(tǒng)的查看學(xué)生功能實(shí)現(xiàn)步驟

    • 4.1 定義一個(gè)方法清蚀,接收ArrayList<Student>集合
    • 4.2 方法內(nèi)遍歷集合,將學(xué)生信息進(jìn)行輸出
    • 4.3 在查看所有學(xué)生選項(xiàng)里調(diào)用查看學(xué)生方法
  5. 學(xué)生管理系統(tǒng)的刪除學(xué)生功能實(shí)現(xiàn)步驟

    • 5.1 定義一個(gè)方法爹谭,接收ArrayList<Student>集合
    • 5.2 方法中接收要?jiǎng)h除學(xué)生的學(xué)號(hào)
    • 5.3 遍歷集合枷邪,獲取每個(gè)學(xué)生對(duì)象
    • 5.4 使用學(xué)生對(duì)象的學(xué)號(hào)和錄入的要?jiǎng)h除的學(xué)號(hào)進(jìn)行比較,如果相同,則將當(dāng)前學(xué)生對(duì)象從集合中刪除
    • 5.5 在刪除學(xué)生選項(xiàng)里調(diào)用刪除學(xué)生的方法
  6. 學(xué)生管理系統(tǒng)的修改學(xué)生功能實(shí)現(xiàn)步驟

    • 6.1 定義一個(gè)方法诺凡,接收ArrayList<Student>集合
    • 6.2 方法中接收要修改學(xué)生的學(xué)號(hào)
    • 6.3 通過(guò)鍵盤錄入學(xué)生對(duì)象所需的信息东揣,并創(chuàng)建對(duì)象
    • 6.4 遍歷集合,獲取每一個(gè)學(xué)生對(duì)象腹泌。并和錄入的修改學(xué)生學(xué)號(hào)進(jìn)行比較.如果相同嘶卧,則使用新學(xué)生對(duì)象替換當(dāng)前學(xué)生對(duì)象
    • 6.5 在修改學(xué)生選項(xiàng)里調(diào)用修改學(xué)生的方法
  7. 退出系統(tǒng)

    • 使用System.exit(0);退出JVM

代碼

學(xué)生類:Student

public class Student {
    //學(xué)號(hào)
    private String sid;
    //姓名
    private String name;
    //年齡
    private String age;
    //居住地
    private String address;

    public Student() {
    }

    public Student(String sid, String name, String age, String address) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

操作測(cè)試類:StudentManger

package www.penglei666.com.demo02;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentManger {
    /*
        1:用輸出語(yǔ)句完成主界面的編寫
        2:用Scanner實(shí)現(xiàn)鍵盤錄入數(shù)據(jù)
        3:用switch語(yǔ)句完成操作的選擇
        4:用循環(huán)完成再次回到主界面
    */
    public static void main(String[] args) {
        //創(chuàng)建集合對(duì)象,用于保存學(xué)生數(shù)據(jù)信息
        ArrayList<Student> array = new ArrayList<Student>();

        //用循環(huán)完成再次回到主界面
        while (true) {
            //用輸出語(yǔ)句完成主界面的編寫
            System.out.println("--------歡迎來(lái)到學(xué)生管理系統(tǒng)--------");
            System.out.println("1 添加學(xué)生");
            System.out.println("2 刪除學(xué)生");
            System.out.println("3 修改學(xué)生");
            System.out.println("4 查看所有學(xué)生");
            System.out.println("5 退出");
            System.out.println("請(qǐng)輸入你的選擇:");

            //用Scanner實(shí)現(xiàn)鍵盤錄入數(shù)據(jù)
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();

            //用switch語(yǔ)句完成操作的選擇
            switch (line) {
                case "1":
                    addStudent(array);
                    break;
                case "2":
                    deleteStudent(array);
                    break;
                case "3":
                    updateStudent(array);
                    break;
                case "4":
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("謝謝使用");
                    System.exit(0); //JVM退出
            }
        }
    }

    //定義一個(gè)方法真屯,用于添加學(xué)生信息
    public static void addStudent(ArrayList<Student> array) {
        //鍵盤錄入學(xué)生對(duì)象所需要的數(shù)據(jù),顯示提示信息脸候,提示要輸入何種信息
        Scanner sc = new Scanner(System.in);

        String sid;

        while (true) {
            System.out.println("請(qǐng)輸入學(xué)生學(xué)號(hào):");
            sid = sc.nextLine();

            boolean flag = isUsed(array, sid);
            if (flag) {
                System.out.println("你輸入的學(xué)號(hào)已經(jīng)被占用,請(qǐng)重新輸入");
            } else {
                break;
            }
        }

        System.out.println("請(qǐng)輸入學(xué)生姓名:");
        String name = sc.nextLine();

        System.out.println("請(qǐng)輸入學(xué)生年齡:");
        String age = sc.nextLine();

        System.out.println("請(qǐng)輸入學(xué)生居住地:");
        String address = sc.nextLine();

        //創(chuàng)建學(xué)生對(duì)象绑蔫,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //將學(xué)生對(duì)象添加到集合中
        array.add(s);

        //給出添加成功提示
        System.out.println("添加學(xué)生成功");
    }

    //定義一個(gè)方法,判斷學(xué)號(hào)是否被使用
    public static boolean isUsed(ArrayList<Student> array, String sid) {
        //如果與集合中的某一個(gè)學(xué)生學(xué)號(hào)相同泵额,返回true;如果都不相同配深,返回false
        boolean flag = false;

        for(int i=0; i<array.size(); i++) {
            Student s = array.get(i);
            if(s.getSid().equals(sid)) {
                flag = true;
                break;
            }
        }

        return flag;
    }


    //定義一個(gè)方法,用于查看學(xué)生信息
    public static void findAllStudent(ArrayList<Student> array) {
        //判斷集合中是否有數(shù)據(jù)嫁盲,如果沒(méi)有顯示提示信息
        if (array.size() == 0) {
            System.out.println("無(wú)信息篓叶,請(qǐng)先添加信息再查詢");
            //為了讓程序不再往下執(zhí)行,我們?cè)谶@里寫上return;
            return;
        }

        //顯示表頭信息
        //\t其實(shí)是一個(gè)tab鍵的位置
        System.out.println("學(xué)號(hào)\t\t\t姓名\t\t\t年齡\t\t\t居住地");

        //將集合中數(shù)據(jù)取出按照對(duì)應(yīng)格式顯示學(xué)生信息羞秤,年齡顯示補(bǔ)充“歲”
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getSid() + "\t\t\t" + s.getName() + "\t\t\t" + s.getAge() + "歲\t\t\t" + s.getAddress());
        }
    }

    //定義一個(gè)方法缸托,用于刪除學(xué)生信息
    public static void deleteStudent(ArrayList<Student> array) {
        //鍵盤錄入要?jiǎng)h除的學(xué)生學(xué)號(hào),顯示提示信息
        Scanner sc = new Scanner(System.in);

        System.out.println("請(qǐng)輸入你要?jiǎng)h除的學(xué)生的學(xué)號(hào):");
        String sid = sc.nextLine();

        //在刪除/修改學(xué)生操作前,對(duì)學(xué)號(hào)是否存在進(jìn)行判斷
        //如果不存在瘾蛋,顯示提示信息
        //如果存在俐镐,執(zhí)行刪除/修改操作

        int index = -1;

        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getSid().equals(sid)) {
                index = i;
                break;
            }
        }

        if (index == -1) {
            System.out.println("該信息不存在,請(qǐng)重新輸入");
        } else {
            array.remove(index);
            //給出刪除成功提示
            System.out.println("刪除學(xué)生成功");
        }
    }

    //定義一個(gè)方法哺哼,用于修改學(xué)生信息
    public static void updateStudent(ArrayList<Student> array) {
        //鍵盤錄入要修改的學(xué)生學(xué)號(hào)佩抹,顯示提示信息
        Scanner sc = new Scanner(System.in);

        System.out.println("請(qǐng)輸入你要修改的學(xué)生的學(xué)號(hào):");
        String sid = sc.nextLine();

        //鍵盤錄入要修改的學(xué)生信息
        System.out.println("請(qǐng)輸入學(xué)生新姓名:");
        String name = sc.nextLine();
        System.out.println("請(qǐng)輸入學(xué)生新年齡:");
        String age = sc.nextLine();
        System.out.println("請(qǐng)輸入學(xué)生新居住地:");
        String address = sc.nextLine();

        //創(chuàng)建學(xué)生對(duì)象
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //遍歷集合修改對(duì)應(yīng)的學(xué)生信息
        for (int i = 0; i < array.size(); i++) {
            Student student = array.get(i);
            if (student.getSid().equals(sid)) {
                array.set(i, s);
            }
        }

        //給出修改成功提示
        System.out.println("修改學(xué)生成功");
    }
}
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市取董,隨后出現(xiàn)的幾起案子棍苹,更是在濱河造成了極大的恐慌,老刑警劉巖茵汰,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枢里,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)栏豺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門梭灿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人冰悠,你說(shuō)我怎么就攤上這事堡妒。” “怎么了溉卓?”我有些...
    開(kāi)封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵皮迟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我桑寨,道長(zhǎng)伏尼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任尉尾,我火速辦了婚禮爆阶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沙咏。我一直安慰自己辨图,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布肢藐。 她就那樣靜靜地躺著故河,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吆豹。 梳的紋絲不亂的頭發(fā)上鱼的,一...
    開(kāi)封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音痘煤,去河邊找鬼凑阶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衷快,可吹牛的內(nèi)容都是我干的宙橱。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼烦磁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼养匈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起都伪,我...
    開(kāi)封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤呕乎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后陨晶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體猬仁,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帝璧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了湿刽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片的烁。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诈闺,靈堂內(nèi)的尸體忽然破棺而出渴庆,到底是詐尸還是另有隱情,我是刑警寧澤雅镊,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布襟雷,位于F島的核電站,受9級(jí)特大地震影響仁烹,放射性物質(zhì)發(fā)生泄漏耸弄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一卓缰、第九天 我趴在偏房一處隱蔽的房頂上張望计呈。 院中可真熱鬧,春花似錦征唬、人聲如沸捌显。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)苇瓣。三九已至,卻和暖如春偿乖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哲嘲。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工贪薪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人眠副。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓画切,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親囱怕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霍弹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361