国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java編程基礎(chǔ)17——集合(List集合)

scola666 / 2668人閱讀

1_(去除ArrayList中重復(fù)字符串元素方式)*

A:案例演示

需求:ArrayList去除集合中字符串的重復(fù)值(字符串的內(nèi)容相同)

思路:創(chuàng)建新集合方式

import java.util.ArrayList;
import java.util.Iterator;
public class ArrayList_1_demo {
    /* 創(chuàng)建新集合將重復(fù)元素去掉
    * 1.明確返回值類型,返回ArrayList
    * 2.明確參數(shù)列表ArrayList
    * */
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("c");
        list.add("b");
        
        ArrayList newList = getSingle(list);
        System.out.println(newList);
    }
    
    public static ArrayList getSingle(ArrayList list) {
        ArrayList newList = new ArrayList();            //1.創(chuàng)建新集合
        Iterator it = list.iterator();                //2.根據(jù)傳入的集合(老集合)獲取迭代器
        
        while(it.hasNext()) {                //3.遍歷老集合
            Object obj = it.next();            //4.臨時(shí)記錄每一個(gè)元素
            if(!newList.contains(obj)) {    //5.如果新集合中不包含老集合中的元素
                newList.add(obj);            //6.將新元素添加到新集合中
            }
        }
        return newList;                        //7.將新集合返回
    }
}
2_(去除ArrayList中重復(fù)自定義對(duì)象元素)*

A:案例演示

需求:ArrayList去除集合中自定義對(duì)象元素的重復(fù)值(對(duì)象的成員變量值相同)

B:注意事項(xiàng)

重寫equals()方法的

contains方法判斷是否包含,底層依賴的是equals方法

remove方法判斷是否刪除,底層依賴的是equals方法

import java.util.ArrayList;
import java.util.Iterator;
import net.allidea.bean.Person;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class ArrayList_2_demo {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();            //創(chuàng)建集合對(duì)象
        list.add(new Person("張三",23));
        list.add(new Person("李四",24));
        list.add(new Person("張三",23));
        list.add(new Person("張三",23));
        list.add(new Person("王五",23));
        list.add(new Person("李四",24));
        
//        ArrayList newList = getSingle(list);            //調(diào)用方法去除重復(fù)
//        System.out.println(newList);
        list.remove(new Person("張三",23));
        System.out.println(list);
    }
    public static ArrayList getSingle(ArrayList list) {
        ArrayList newList = new ArrayList();            //1.創(chuàng)建新集合
        Iterator it = list.iterator();                //2.根據(jù)傳入的集合(老集合)獲取迭代器
        
        while(it.hasNext()) {                //3.遍歷老集合
            Object obj = it.next();            //4.臨時(shí)記錄每一個(gè)元素
            if(!newList.contains(obj)) {    //5.如果新集合中不包含老集合中的元素
                newList.add(obj);            //6.將新元素添加到新集合中
            }
        }
        return newList;                        //7.將新集合返回
    }
}
    @Override//重寫equals方法
    public boolean equals(Object obj) {
        Person p = (Person)obj;
        return this.name.equals(p.name) && this.age == p.age;
    }
3_(LinkedList的特有功能)*

A:LinkedList類概述

B:LinkedList類特有功能

public void addFirst(E e)及addLast(E e)

public E getFirst()及getLast()

public E removeFirst()及public E removeLast()

public E get(int index);

import java.util.LinkedList;
public class ArrayList_3_LinkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.addFirst("a");
        list.addFirst("b");
        list.addFirst("c");
        list.addFirst("d");//在頭部添加
        list.addLast("e");//在尾部添加
        
//        System.out.println(list.getFirst());//打印頭部元素
//        System.out.println(list.getLast());//打印尾部元素
//        System.out.println(list.removeFirst());//刪除頭
//        System.out.println(list.removeLast());//刪除尾
        System.out.println(list.get(1));
        System.out.println(list);
    }
}
4_(棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu))*

先進(jìn)后出 (裝子彈原理)

隊(duì)列

先進(jìn)先出(水龍頭原理)

5_用LinkedList模擬棧數(shù)據(jù)結(jié)構(gòu)的集合并測(cè)試*

A:案例演示

需求:請(qǐng)用LinkedList模擬棧數(shù)據(jù)結(jié)構(gòu)的集合,并測(cè)試

創(chuàng)建一個(gè)類將Linked中的方法封裝

import java.util.LinkedList;
import java.util.Stack;

public class ArrayList_4_LinkedList {
    public static void main(String[] args) {
//        demo1();
        stack s = new stack();            //進(jìn)棧
        s.in("a");
        s.in("b");
        s.in("c");
        s.in("d");
        
        while(!s.isEmpty()) {            //是否為空
            System.out.println(s.out());//彈棧
        }
    }

    private static void demo1() {
        LinkedList list = new LinkedList();
        list.addLast("a");
        list.addLast("b");
        list.addLast("c");
        list.addLast("d");
        
/*        System.out.println(list.removeLast());
        System.out.println(list.removeLast());
        System.out.println(list.removeLast());
        System.out.println(list.removeLast());*/
        
        while (!list.isEmpty()) {        
            System.out.println(list.removeLast());
        }
    }
}
import java.util.LinkedList;
public class stack {
    private LinkedList list = new LinkedList();
    
    //模擬進(jìn)棧方法
    public void in(Object obj) {
        list.addLast(obj);
    }
    
    //模擬出棧方法
    public Object out() {
        return list.removeLast();
    }
    
    //模擬棧結(jié)構(gòu)是否為空
    public boolean isEmpty() {
        return list.isEmpty();
    }
}
6_泛型概述和基本使用*

A:泛型概述

B:泛型好處

提高安全性(將運(yùn)行期的錯(cuò)誤轉(zhuǎn)換到編譯期)

省去強(qiáng)轉(zhuǎn)的麻煩

C:泛型基本使用

<>中放的必須是引用數(shù)據(jù)類型

D:泛型使用注意事項(xiàng)

前后的泛型必須一致,或者后面的泛型可以省略不寫(1.7的新特性菱形泛型)

import java.util.ArrayList;
import java.util.Iterator;
import net.allidea.bean.Person;
public class Generic_1_demo {    
    public static void main(String[] args) {
//        demo1();
//        int[] arr = new byte[5];                                //數(shù)組要保證前后的數(shù)據(jù)類型一致
//        ArrayList list = new ArrayList();         //集合泛型也要保證前后的數(shù)據(jù)類型一致
//        ArrayList list = new ArrayList<>();                //1.7版本新特性,菱形泛型
        ArrayList list = new ArrayList<>();                //泛型不定義Object,沒有意義
        list.add("aaa");
        list.add(true);
        list.add(new Person("張三",23));
    }

    private static void demo1() {
        ArrayList list = new ArrayList();
//        list.add(100);
//        list.add(true);
        list.add(new Person("張三",23));
        list.add(new Person("李四",24));
        
        Iterator it = list.iterator();
        while(it.hasNext()) {
//            System.out.println(it.next());
            //next()方法只能調(diào)用一次,如果調(diào)用多次會(huì)將指針向后移動(dòng)多次
//            System.out.println(it.next().getName() + "..." + it.next().getAge());
            Person p = it.next();        //向下轉(zhuǎn)型
            System.out.println(p.getName() + "..." + p.getAge());
        }
    }
}
7_ArrayList存儲(chǔ)字符串和自定義對(duì)象并遍歷泛型版*

A:案例演示

ArrayList存儲(chǔ)字符串并遍歷泛型版

import java.util.ArrayList;
import java.util.Iterator;
import net.allidea.bean.Person;
public class Generic_2_demo 
    public static void main(String[] args) {
//        demo1();
        demo2();
    }

    private static void demo2() {
        ArrayList list = new ArrayList<>();
        list.add(new Person("張三",23));
        list.add(new Person("李四",24));
        list.add(new Person("王五",25));
        list.add(new Person("趙六",26));
        
        Iterator it = list.iterator();
        while(it.hasNext()) {
            Person p = it.next();    //將集合中的每一個(gè)元素用Person記錄
            System.out.println(p.getName() + "..." + p.getAge());
        }
    }
    
    private static void demo1() {
        ArrayList list = new ArrayList();        //創(chuàng)建集合對(duì)象
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        
        Iterator it = list.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}
8_泛型的由來(lái)(了解)

A:案例演示

泛型的由來(lái):通過Object轉(zhuǎn)型問題引入

早期的Object類型可以接收任意的對(duì)象類型,但是在實(shí)際的使用中,會(huì)有類型轉(zhuǎn)換的問題。也就存在這隱患,所以Java提供了泛型來(lái)解決這個(gè)安全問題。

import net.allidea.bean.Animal;        //Animal 繼承 Person及其構(gòu)造
import net.allidea.bean.Person;        //Person private String name;private int age;
import net.allidea.bean.Tool;        //Tool 自定義類private Object obj;
import net.allidea.bean.Worker;        //Worker 繼承 Person及其構(gòu)造

public class Generic_3_demo {
    public static void main(String[] args) {
        Tool t = new Tool();        //創(chuàng)建工具類對(duì)象
        t.setObj(new Animal("張三",23));

        Worker w = (Worker)t.getObj();        //向下轉(zhuǎn)型
        System.out.println(w);
    }
}
9_泛型類的概述及使用(了解)

A:泛型類概述

把泛型定義在類上

B:定義格式

public class 類名<泛型類型1,…>

C:注意事項(xiàng)

泛型類型必須是引用類型

D:案例演示

泛型類的使用

import net.allidea.bean.Animal;        //Animal 繼承 Person及其構(gòu)造
import net.allidea.bean.Person;        //Person private String name;private int age;
import net.allidea.bean.Tool;        //Tool 自定義類private Object obj;
import net.allidea.bean.Worker;        //Worker 繼承 Person及其構(gòu)造

public class Generic_3_demo {
    public static void main(String[] args) {
        Tool t = new Tool<>();        //創(chuàng)建工具類對(duì)象
        t.setObj(new Animal("張三",23));

//        Worker w = (Worker)t.getObj();        //報(bào)錯(cuò)
//        System.out.println(w);
    }
}
//Tool文件
package net.allidea.bean;
public class Tool {    //E代表元素
    private Q q;

    public Q getObj() {
        return q;
    }

    public void setObj(Q q) {
        this.q = q;
    }
}
10_泛型方法的概述和使用(了解)

A:泛型方法概述

把泛型定義在方法上

B:定義格式

public <泛型類型> 返回類型 方法名(泛型類型 變量名)

C:案例演示

泛型方法的使用

import net.allidea.bean.Animal;        //Animal 繼承 Person及其構(gòu)造
import net.allidea.bean.Tool;        //Tool 自定義類private Object obj;

public class Generic_3_demo {
    public static void main(String[] args) {
        Tool t = new Tool<>();
//        t.show("abc");
        t.show(true);            //無(wú)類型,自動(dòng)裝箱
    }
}
package net.allidea.bean;
public class Tool {    //E代表元素
    private Q q;

    public Q getObj() {
        return q;
    }

    public void setObj(Q q) {
        this.q = q;
    }
    
    public void show(T t) {        //方法泛型需要與類的泛型一致
        System.out.println(t);        //如果不一致,需要在方法上聲明該類型
    }
    
    public static void print(Q q) {    //靜態(tài)方法必須聲明自己的泛型,加載早此Q非彼Q
        System.out.println(q);    
    }
}
11_泛型接口的概述和使用(了解)

A:泛型接口概述

把泛型定義在接口上

B:定義格式

public interface 接口名<泛型類型>

C:案例演示

泛型接口的使用

package net.allidea.Generic;
public class Generic_4_demo {    
    public static void main(String [] args) {            
    }
}

interface Inter {        //接口泛型
    public void show(T t);        //抽象方法
}

/*class Demo implements Inter {        //第一種方式實(shí)現(xiàn)接口泛型,推薦

     @Override
    public void show(String t) {            //重寫抽象方法
        System.out.println(t);
    }
}*/

class Demo implements Inter {        //沒有必要再實(shí)現(xiàn)接口的時(shí)候,給自己類加泛型

    @Override
    public void show(T t) {
        System.out.println(t);
    }
}
12_(泛型高級(jí)之通配符)(了解)

A:泛型通配符

任意類型,如果沒有明確,那么就是Object以及任意的Java類了

B:? extends E

向下限定,E及其子類

C:? super E

向上限定,E及其父類

import java.util.ArrayList;
import java.util.List;
import net.allidea.bean.Person;
import net.allidea.bean.Animal;

public class Generic_5_demo {
    public static void main(String[] args) {
//        List    list = new ArrayList(); //當(dāng)右邊泛型是不確定時(shí),左邊可以指定為?
        ArrayList list1 = new ArrayList<>();
        list1.add(new Person("張三",23));
        list1.add(new Person("李四",24));
        list1.add(new Person("王五",25));
        
        ArrayList list2 = new ArrayList<>();
        list2.add(new Animal("趙六",26));
        list2.add(new Animal("田七",27));
        
        list1.addAll(list2);    //Animal繼承Person
        System.out.println(list1);    
    }
}
13_增強(qiáng)for的概述和使用*

A:增強(qiáng)for概述——簡(jiǎn)化數(shù)組和Collection集合的遍歷

B:格式:

        for(元素?cái)?shù)據(jù)類型 變量 : 數(shù)組或者Collection集合) {
            使用變量即可,該變量就是元素
        }

C:案例演示——數(shù)組,集合存儲(chǔ)元素用增強(qiáng)for遍歷

D:好處——簡(jiǎn)化遍歷

import java.util.ArrayList;
public class Foreach_1_demo {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55,66};
        for(int i : arr) {
            System.out.println(i);
        }

        ArrayList list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        
        for (String string : list) {
            System.out.println(string);
        }
    }
}
14_ArrayList存儲(chǔ)字符串和自定義對(duì)象并遍歷增強(qiáng)for版 *

ArrayList存儲(chǔ)字符串并遍歷增強(qiáng)for版

增強(qiáng)for循環(huán)底層依賴的是迭代器(Iterator)

    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add(new Person("張三",23));
        list.add(new Person("李四",24));
        list.add(new Person("王五",25));
        list.add(new Person("趙六",26));
        list.add(new Person("田七",27));
        
        for (Person person : list) {
            System.out.println(person);
        }
    }
15_三種迭代的能否刪除*

普通for循環(huán),可以刪除,但是索引要--

迭代器,可以刪除,但是必須使用迭代器自身的remove方法,否則會(huì)出現(xiàn)并發(fā)修改異常

增強(qiáng)for循環(huán)不能刪除

    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("b");
        
        //普通for循環(huán)刪除,索引要--
        /*for (int i = 0; i < list.size(); i++) {
            if("b".equals(list.get(i))) {
                list.remove(i--);                    //通過索引刪除元素
            }
        }*/
        //迭代器刪除
        /*Iterator it = list.iterator();
        while(it.hasNext()) {
            if("b".equals(it.next())) {
//                list.remove("b");        //不能用集合的刪除方法,會(huì)報(bào)并發(fā)修改異常
                it.remove();
            }
        }*/
        
        /*for(Iterator it2 = list.iterator(); it2.hasNext();) {
            if("b".equals(it2.next())) {
                it2.remove();
            }
        }*/
        
        //增強(qiáng)for循環(huán),不能刪除,只能遍歷
        for (String String : list) {
            if("b".equals(String)) {
                list.remove("b");
            }
        }
        System.out.println(list); 
    }
16_靜態(tài)導(dǎo)入的概述和使用(了解)

A:靜態(tài)導(dǎo)入概述

靜態(tài)導(dǎo)入時(shí)導(dǎo)入類中的靜態(tài)方法;

B:格式:

import static 包名….類名.方法名;

可以直接導(dǎo)入到方法的級(jí)別

C:注意事項(xiàng)

方法必須是靜態(tài)的,如果有多個(gè)同名的靜態(tài)方法,容易不知道使用誰(shuí)?

這個(gè)時(shí)候要使用,必須加前綴。由此可見,意義不大,所以一般不用,但是要能看懂。
import static java.util.Arrays.sort;
import static java.util.Arrays.*;
public class StaticImport_2_demo {        
    public static void main(String[] args) {
        int[] arr = {11,33,55,66,99,44};
        sort(arr);            //排序
        System.out.println(Arrays.toString(arr));
    }
}
17_可變參數(shù)的概述和使用*

A:可變參數(shù)概述

定義方法的時(shí)候不知道該定義多少個(gè)參數(shù)

B:格式

修飾符 返回值類型 方法名(數(shù)據(jù)類型… 變量名){}

C:注意事項(xiàng):

這里的變量其實(shí)是一個(gè)數(shù)組

如果一個(gè)方法有可變參數(shù),并且有多個(gè)參數(shù),那么,可變參數(shù)肯定是最后一個(gè)

public class ChangeableArgs_3_demo {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
//        print(arr);
        print(11,22,33,44,55);
        System.out.println("------------");
        print(0, arr);
    }
    
    /*public static void print(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }*/
    
    public static void print(int x,int ... arr) {            //可變參數(shù)是一個(gè)數(shù)組
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}
18_Arrays工具類的asList()方法的使用*

A:案例演示

Arrays工具類的asList()方法的使用

Collection中toArray(T[] a)泛型版的集合轉(zhuǎn)數(shù)組

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Demo4_Aslist {
    public static void main(String[] args) {
//        demo1();
//        demo2();
        //集合轉(zhuǎn)數(shù)組,加泛型的
        ArrayList list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        
        String[] arr = list.toArray(new String[10]);//當(dāng)集合轉(zhuǎn)換數(shù)組時(shí),數(shù)組長(zhǎng)度<=集合的size時(shí),轉(zhuǎn)換后的數(shù)組等于集合的size
        for (String string : arr) {            //如果數(shù)組的長(zhǎng)度大于了size,分配的數(shù)組長(zhǎng)度就和你指定的長(zhǎng)度一樣
            System.out.println(string);
        }    
    }

    private static void demo2() {
        /*int[] arr = {11,22,33,44,55,66};            //將整個(gè)數(shù)組當(dāng)做一個(gè)引用類型
        List list = Arrays.asList(arr);        //基本數(shù)據(jù)類型的數(shù)組轉(zhuǎn)換成集合,會(huì)將整個(gè)數(shù)組當(dāng)作一個(gè)集合
        System.out.println(list);*/
        
        Integer[] arr = {11,22,33,44,55};
        List list = Arrays.asList(arr);    //將數(shù)組轉(zhuǎn)換成集合,數(shù)組必須是引用數(shù)據(jù)類型
        System.out.println(list);
    }

    private static void demo1() {
        String[] arr = {"a","b","c","d","e","f","g"};
        List list = Arrays.asList(arr);            //將數(shù)組轉(zhuǎn)換成集合
        list.add("h");                                //不能添加
        System.out.println(list);
    }
}
19_集合嵌套之ArrayList嵌套ArrayList*

A:案例演示

集合嵌套之ArrayList嵌套ArrayList

案例

學(xué)科——分若干個(gè)班級(jí)

學(xué)科是一個(gè)大集合

若干個(gè)班級(jí)分為每一個(gè)小集合

import java.util.ArrayList;
import net.allidea.bean.Person;
public class List_6_ArrayList {
    public static void main(String[] args) {
        ArrayList> list = new ArrayList<>(); 
        ArrayList first = new ArrayList<>();            //創(chuàng)建第一個(gè)班級(jí)
        first.add(new Person("楊冪",30));
        first.add(new Person("胡歌",36));
        first.add(new Person("郭富城",50));
        first.add(new Person("周杰倫",38));
        
        ArrayList second = new ArrayList<>();
        second.add(new Person("黃曉明",31));
        second.add(new Person("趙薇",31));
        second.add(new Person("陳坤",31));
        
        //將班級(jí)添加到學(xué)科集合中
        list.add(first);
        list.add(second);
        
        //遍歷學(xué)科集合
        for(ArrayList a : list) {
            for(Person p : a) {
                System.out.println(p);
            }
        }    
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/77199.html

相關(guān)文章

  • Java編程基礎(chǔ)18——集合(Set集合

    摘要:并把最終的隨機(jī)數(shù)輸出到控制臺(tái)。方法,在集合中如何存儲(chǔ)元素取決于方法的返回值返回,集合中只有一個(gè)元素。創(chuàng)建集合對(duì)象,傳入比較器。 1_HashSet存儲(chǔ)字符串并遍歷 A:Set集合概述及特點(diǎn) 通過API查看即可 B:案例演示 HashSet存儲(chǔ)字符串并遍歷 import java.util.HashSet; public class Demo1_HashSet { p...

    SexySix 評(píng)論0 收藏0
  • Java編程基礎(chǔ)34——JDBC&DBUtil

    摘要:不用自己來(lái)創(chuàng)建,而是通過池來(lái)獲取對(duì)象使用完后,調(diào)用的方法也不會(huì)真的關(guān)閉,而是把歸還給池連接池技術(shù)可以完成對(duì)象的再次利用接口為數(shù)據(jù)庫(kù)連接池提供了公共的接口各個(gè)廠商需要讓自己的連接池實(shí)現(xiàn)這個(gè)接口。 1.DButils工具類的介紹個(gè)三個(gè)核心類 A: 概述 DBUtils是java編程中的數(shù)據(jù)庫(kù)操作實(shí)用工具,小巧簡(jiǎn)單實(shí)用。 DBUtils封裝了對(duì)JDBC的操作,簡(jiǎn)化了JDBC操作,可以少...

    svtter 評(píng)論0 收藏0
  • 我的阿里之路+Java面經(jīng)考點(diǎn)

    摘要:我的是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)。因?yàn)槲倚睦砗芮宄业哪繕?biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來(lái)的學(xué)習(xí)計(jì)劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)offer。然后五月懷著忐忑的心情開始了螞蟻金...

    姘擱『 評(píng)論0 收藏0
  • 【Python零基礎(chǔ)到入門】Python基礎(chǔ)語(yǔ)法篇——基本數(shù)據(jù)類型【文末送書】

    摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來(lái)判斷和的區(qū)別在于不會(huì)認(rèn)為子類是一種父類類型。會(huì)認(rèn)為子類是一種父類類型。基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...

    Winer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<