日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Java > 正文

關于JAVA 數組的使用介紹

2019-11-26 16:11:39
字體:
來源:轉載
供稿:網友

JAVA數組與容器類主要有三方面的區別:效率、類型和保存基本類型的能力。在JAVA中,數組是一種效率最高的存儲和隨機訪問對象引用序列的方式。數組就是一個簡單的線性數列,這使得元素訪問非常快速。但是為此付出的代價卻是數組的大小被固定,并且在其生命周期中不可改變。

由于范型和自動包裝機制的出現,容器已經可以與數組幾乎一樣方便地用于基本類型中了。數組和容器都可以一定程度上防止你濫用他們,如果越界,就會得到RuntimeException異常。數組碩果僅存的優勢便是效率,然而,如果要解決更一般化的問題,那數組可能會受到過多的限制,因此這種情況下大部分還是會選擇容器。

因此,如果使用最近的JAVA版本,應該優先選擇容器而不是數組。只有在已證明性能已成為問題,并且切換到數組可以提高性能時,才應該重構程序為數組。

【初始化】
JAVA對數組初始化有很嚴格的規定,這樣可以有效地防止濫用數組。如果初始化錯誤,會直接得到CompileException而不是RuntimeException。在未對數組正確初始化之前,無法用此數組引用做任何事情。
數組定義有int[] array 和int array[],一般采用第一種風格,可以將類型與變量名分開。
數組的初始化有兩種方式,靜態初始化和動態初始化。初始化的時候必須指定長度,多維數組第一維的長度必須指出,同時必須由高維向低維定義。初始化動作可以在代碼的任何地方,而用{}方式只能在創建數組的地方出現。具體初始化方式見程序:

復制代碼 代碼如下:

public class javaArrayInit{
    public static void main(String args[]){
        int[] arrayA; //未初始化
        int[] arrayB = new int[5]; //靜態初始化
        //System.out.println(arrayA.length);  //CompileException
        System.out.println("arrayB length: " + arrayB.length); //無法得到實際保存的元素個數

        arrayA = new int[10]; //動態初始化
        System.out.println("arrayA length: " + arrayA.length);

        int[] arrayC = new int[]{1,2,3,4};
        System.out.println("arrayC length: " + arrayC.length);

        //int[] arrayD = new int[1]{1}; //錯誤的初始化,不能同時定義維和初始化值

        int[][] arrayE = new int[1][];
        System.out.println("arrayE length: " + arrayE.length);

        //int[][] arrayF = new int[][2]; //應先指定高維的長度

        int[][] arrayG = new int[][]{{1,2,3,4},{5,6,7},{7,24,23,24}};
        System.out.println("arrayG length: " + arrayG.length);

        int[][][] arrayH = new int[][][]{{{1,2,3},{4,5,6},{7,8,9},{10,11,12}}};
        System.out.println("arrayH length: " + arrayH.length);

        dummyArray[] arrayI = {new dummyArray(),new dummyArray()}; //自定義數組類型
        System.out.println("arrayI length: " + arrayI.length);
        System.out.println("arrayI[1]: " + arrayI[1].getValue());

        dummyArray[] arrayK = new dummyArray[5];
        System.out.println("arrayK[0]: " + arrayK[0]); //null
        for(int i = 0; i < arrayK.length; i++){
            arrayK[i] = new dummyArray();
        }
        System.out.println("arrayK[0]: " + arrayK[0].getValue()); //2
    }
}
class dummyArray{
    private static int temp;
    private final int arrayValue = temp++;
    public int getValue(){
        return arrayValue;
    }
}

輸出:

arrayB length: 5
arrayA length: 10
arrayC length: 4
arrayE length: 1
arrayG length: 3
arrayH length: 1
arrayI length: 2
arrayI[1]: 1
arrayK[0]: null
arrayK[0]: 2


【length】
只讀成員length是數組對象的一部分(雖然實際上API里面并沒有聲明這個變量,是運行時動態生成),這是唯一一個可以訪問的字段或方法。而[]語法是訪問數組對象的唯一方式,容器是通過get()方法訪問。可以使用Array.length來得到數組的大小,注意與String類型的String.length()區分。Array使用的是成員變量的方式,而String使用的是成員方法的方式。同時,Array.length只能得到數組的大小,而無法得到數組實際有多少元素。多維數組的length只計算第一維的長度。
復制代碼 代碼如下:

public class javaArrayLength{
    public static void main(String args[]){
        int[] arrayA = new int[15];
        arrayA[1] = 1;
        arrayA[2] = 2;
        arrayA[3] = 3;
        System.out.println("arrayA length: " + arrayA.length);

        int[][] arrayB = new int[10][];
        System.out.println("arrayB length: " + arrayB.length);

        int[][] arrayC = new int[][]{{1,1,1,2,},{1,1,2,3,4,5},{4,5,6,7,7},};//注意后面的逗號
        System.out.println("arrayC length: " + arrayC.length);

        int[][] arrayD = new int[][]{{1,1,1,2,},{1,1,2,3,4,5},{4,5,6,7,7},{}};
        System.out.println("arrayD length: " + arrayD.length);
    }
}
輸出:

arrayA length: 15
arrayB length: 10
arrayC length: 3
arrayD length: 4


【Arrays.fill】
Arrays.fill是一個作用十分有限的方法,因為它只能用同一個值填充各個位置(如果是對象,則復制同一個引用進行填充)。使用Arrays.fill可以填充整個數組或者數組的某一個區域,但是由于只能用單一的數值來調用Arrays.fill,因此作用并不是很大。

【賦值與引用】
JAVA數組初始化的時候擁有的只是對數組的引用,并沒有給數組分配存儲空間。因此,數組之間的復制不能簡單地用“=”賦值,因為操作的是同一對象。如下程序:
復制代碼 代碼如下:

public class javaArrayQuote{
    public static void main(String args[]){
        String testA = "testA";
        String testB = "testB";
        String[] arrayA = new String[]{"arrayA"};
        String[] arrayB = new String[]{"arrayB"};
        testB = testA;
        testB = "testB change";
        System.out.println("I'm testA,I have no changed: " + testA);
        arrayB = arrayA;
        arrayB[0] = "arrayB have changed";
        System.out.println("I'm arrayA, I have no changed: " + arrayA[0]);

    }
}
輸出:

I'm testA,I have no changed:testA
I'm arrayA, I have no changed:arrayB have changed


可以看出,我們改變arrayB[0]的值,改變的是引用的數組,因此我們輸出arrayA[0],其實和arrayB[0]一樣。

【數組復制】
        JAVA中復制數組的方法:

        1.使用FOR循環復制全部或指定元素,效率較低
        2.使用clone方法,得到數組的值,而不是引用。然而clone不能復制指定元素,靈活性較低
        3.使用System.arraycopy(src, srcPos, dest, destPos, length)方法,java標準類庫提供有static方法 System.arraycopy(),用它復制數組要比for循環快很多,System.arraycopy()針對所有類型做了重載,基本類型數組和對象數組都可以用System.arraycopy()復制,但是對象數組只是復制引用,不會出現兩份對象的拷貝。這被稱作淺復制(shallowcopy)。
               src:源數組;
                srcPos:源數組要復制的起始位置;
                dest:目的數組;
                destPos:目的數組放置的起始位置;
                length:復制的長度.
        注意:System.arraycopy()不會進行自動包裝和自動拆包,因此兩個數組必須是同類型或者可以轉換為同類型的數組。同時,這個方法也可以用于復制數組本身。
        int[] test ={0,1,2,3,4,5,6};
        System.arraycopy(test,0,test,3,3);
        則結果為:{0,1,2,0,1,2,6};
        測試程序如下:
復制代碼 代碼如下:

public class javaArrayCopy{
    public static void main(String args[]){
        int[] array = {1,2,3,4,5,6,7,8,9};
        //for循環方法
        int[] arrayA = new int[9];
        for(int i = 0; i < arrayA.length; i++){
            arrayA[i] = array[i];
            System.out.print(arrayA[i] + ",");
        }
        //測試
        System.out.println("");
        arrayA[1] = 19;
        for(int i = 0; i < arrayA.length; i++){
            System.out.print(arrayA[i] + ",");
        }
        System.out.println("");
        for(int i = 0; i < array.length; i++){
            System.out.print(array[i] + ",");
        }
        System.out.println("");

        //clone方法
        int[] arrayB = new int[9];
        arrayB = array.clone();
        //測試
        arrayB[1] = 19;
        for(int i = 0; i < arrayB.length; i++){
            System.out.print(arrayB[i] + ",");
        }
        System.out.println("");
        for(int i = 0; i < array.length; i++){
            System.out.print(array[i] + ",");
        }
        System.out.println("");

        //System.arrayCopy 方法
        int[] arrayC = new int[9];
        System.arraycopy(array, 0, arrayC, 0, arrayC.length);
        //測試
        arrayC[1] = 19;
        for(int i = 0; i < arrayC.length; i++){
            System.out.print(arrayC[i] + ",");
        }
        System.out.println("");
        for(int i = 0; i < array.length; i++){
            System.out.print(array[i] + ",");
        }
    }
}

【數組比較】
Arrays提供了重載后的equals()方法,針對所有類型和Object類型都做了重載,用來比較整個數組。數組相等的條件是元素個數必須相等,并且對應位置的元素也相等。而多維數組的比較用deepEquals()方法。Array.equals()方法比較的兩個數組必須是同類型的數組。
復制代碼 代碼如下:

import java.util.Arrays;
public class javaArrayEquals{
    public static void main(String args[]){
        int[] arrayA = {1,2,3};
        int[] arrayB = {1,2,3,};
        int[] arrayC = new int[4]; //if int[] arrayC = new int[3],return true
        arrayC[0] = 1;
        arrayC[1] = 2;
        arrayC[2] = 3;
        System.out.println(Arrays.equals(arrayA, arrayB));
        System.out.println(Arrays.equals(arrayA, arrayC));

        String[][] arrayD = {{"a","b"},{"c","d"}};
        String[][] arrayE = {{"a","b"},{"c","d"}};
        System.out.println(Arrays.deepEquals(arrayD, arrayE));
    }
}

【數組排序與查找】
數組提供了內置的排序方法sort(),可以對任意基本類型數組或者對象數組進行排序(該對象必須實現Comparable接口或者具有相關聯的Comparator)。JAVA對不同的類型提供了不同的排序方法----針對基本類型設計的快速排序,以及針對對象設計的“穩定歸并排序”,所以無需擔心數組排序的效率問題。
 binarySearch()用于在以排好序的數組中快速查找元素,如果對未排序的數組使用binarySearch(),那么將產生難以預料的結果。

【返回數組】
C和C++不能返回一個數組,只能返回指向數組的指針,因為返回數組使得控制數組的生命周期變得困難,并且容易造成內存泄漏。java允許直接返回一個數組,并且可以由垃圾回收機制回收。

【數組與容器轉換】【無法轉換基本類型數組】

數組轉為List:
復制代碼 代碼如下:

import java.util.*;
public class arrayToList{
    public static void main(String args[]){
        String[] arrayA = {"a","b","c"};
        List listA = java.util.Arrays.asList(arrayA);
        System.out.println("listA: " + listA);

        int[] arrayB = {1,2,3};
        List listB = java.util.Arrays.asList(arrayB);
        System.out.println("listB: " + listB);

        Integer[] arrayC = {1,2,3};
        List listC = java.util.Arrays.asList(arrayC);
        System.out.println("listC: " + listC);
    }
}
輸出:


listA: [a, b, c]
listB: [[I@de6ced]
listC: [1, 2, 3]


為什么int和Integer輸出會不同呢?

List轉為數組
復制代碼 代碼如下:

import java.util.*;
public class listToArray{
    public static void main(String args[]){
        List<String> list = new ArrayList<String>();
        String[] array;
        list.add("testA");
        list.add("testB");
        list.add("testC");
        System.out.println("list: " + list);

        String[] strings = new String[list.size()];
        array = list.toArray(strings);
        for(int i = 0, j = array.length; i < j; i++){
            System.out.print(array[i] + ",");
        }
    }
}
輸出為:

list: [testA, testB, testC]
testA,testB,testC


【去除重復數據】
利用數組和容器轉換可以方便地去除數組重復數據,不過如果數組過大,效率是一個問題。
復制代碼 代碼如下:

import java.util.*;
public class javaArrayUnique{
    public static void main(String args[]){
        String[] array = {"a","b","a","a","c","b"};
        arrayUnique(array);
        //test
        for(int i = 0, j = arrayUnique(array).length; i < j; i++){
            System.out.print(arrayUnique(array)[i] + ",");
        }
    }

    public static String[] arrayUnique(String[] array){
        List<String> list = new ArrayList<String>();
        for(int i = 0, j = array.length; i < j; i++){
            if(!list.contains(array[i])){
                list.add(array[i]);
            }
        }
        String[] strings = new String[list.size()];
        String[] arrayUnique = list.toArray(strings);
        return arrayUnique;
    }
}

 關于效率問題,我做了一個對比,在我電腦上運行十萬數據的數組大概是577ms,而運行一百萬數據的數據大約要5663ms。這還跟計算機的運行能力有關,但是明顯是隨著數組大小遞增的。
復制代碼 代碼如下:

import java.util.*;
public class javaArrayUnique{
    public static void main(String args[]){
        Double[] array = new Double[100000];
        for(int i = 0, j = array.length; i < j; i++){
            array[i] = Math.ceil(Math.random()*1000);
        }

        Double[] arrayB = new Double[1000000];
        for(int i = 0, j = arrayB.length; i < j; i++){
            arrayB[i] = Math.ceil(Math.random()*1000);
        }

        System.out.println("start");
        long startTime = System.currentTimeMillis();
        arrayUnique(array);
        long endTime = System.currentTimeMillis();
        System.out.println("array unique run time: " +(endTime - startTime) +"ms");

        long startTimeB = System.currentTimeMillis();
        arrayUnique(arrayB);
        long endTimeB = System.currentTimeMillis();
        System.out.println("arrayB unique run time: " +(endTimeB - startTimeB) +"ms");
    }

    public static Double[] arrayUnique(Double[] array){
        List<Double> list = new ArrayList<Double>();
        for(int i = 0, j = array.length; i < j; i++){
            if(!list.contains(array[i])){
                list.add(array[i]);
            }
        }
        Double[] doubles = new Double[list.size()];
        Double[] arrayUnique = list.toArray(doubles);
        return arrayUnique;
    }
}
輸出:

start
array unique run time: 577ms
arrayB unique run time: 5663ms


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
日本中文字幕在线观看| 欧美日韩国产91| 欧美久久久网站| 国产视频2区| 国产91久久久久蜜臀青青天草二| 91精品观看| 色综合天天综合网天天狠天天| 欧美日韩在线视频首页| 国产九九在线| 久久中文免费视频| 国产欧美日韩中文久久| 99综合视频| 日韩中文字幕视频网| 一区二区高清视频| 中文字幕 欧美日韩| 日韩欧美中文在线| 欧美 日韩 综合| 精品中文在线| 欧美不卡视频一区| 日韩欧美成人一区二区三区| av免费在线播放| 亚洲综合日韩中文字幕v在线| 久久久91精品国产| 日韩精品视频在线观看免费| 久精品在线观看| 91精品国产综合久久久久久漫画| 久久精品一级爱片| 91精品国产91综合久久蜜臀| 欧美三级视频在线| www.av中文字幕| 日韩精品视频在线| 欧美三级一区二区三区| 日本亚洲欧美三级| 日韩一级中文字幕| 午夜国产在线视频| 欧美日韩在线国产| 日本精品国语自产拍在线观看| 欧美日韩国产免费观看| 国产在线小视频| 国产视频aaa| 91精品在线视频观看| 亚洲一区在线观看视频| 精品国产999| 欧美日韩国产一中文字不卡| 成人欧美亚洲| 国产劲爆久久| 国产日产一区二区三区 | 色屁屁一区二区| 日韩不卡在线观看| 免费在线亚洲| 亚洲综合在线中文字幕| 91精品蜜臀在线一区尤物| 日韩精品一二三四区| 日本黄色一区二区| lutube成人福利在线观看| 日韩欧美中文字幕在线播放| 欧美日韩国产一二| 美女在线视频一区| 精品视频1区2区3区| 国产欧美中文字幕| 日韩精品第一区| 久久久99久久精品欧美| 国产亚洲二区| 午夜一区二区三区| 亚洲综合在线视频| 日韩1区在线| 日韩欧美国产免费播放| 97天天综合网| 在线综合 亚洲 欧美中文字幕| 亚洲欧美久久234| 亚洲丝袜一区| 国产高清一级片| 欧美日韩国产页| 国产 中文 字幕 日韩 在线| 日韩欧美中文在线视频| 欧美成人vr18sexvr| 国产一区在线观看视频| 国产高清视频一区二区| 在线中文免费视频| 蜜桃久久av| 久久综合久久综合九色| 中文字幕精品在线视频| 日韩精品在线视频| 国产一级片在线| 亚洲欧洲三级| 国产第一页在线播放| 97国产视频| 中文字幕精品一区二| 国产黄色在线| 欧美日韩在线观看成人| 日韩在线视频观看正片免费网站| 久久中文精品| 亚洲欧美日本国产专区一区| 日韩福利视频导航| 99久久婷婷| 日韩视频免费直播| 国产欧美日韩视频| 免费精品国产自产拍观看| 精品日韩在线观看| 欧美国产一级片| 欧美日韩性视频一区二区三区| 91久久精品视频| 国产亚洲一区字幕| 中文字幕精品视频在线| 婷婷中文字幕一区| 亚洲福利精品| 日韩免费看网站| 日韩免费高清一区二区| 中文字幕在线欧美| 亚洲免费中文字幕| 欧美高清一区| 国产欧美三级| av免费在线不卡| 国产不卡视频在线| 国产欧美日韩中文字幕| 欧美,日韩,国产在线| 欧美日韩成人一区| 欧美日韩在线视频一区| 日韩av在线中文字幕| 91精品国产91| 日韩中文字幕| 亚洲一区二区三区精品中文字幕| 日韩中文字幕综合| 欧美日韩免费高清| 精品一区二区三区中文字幕 | aaa大片在线观看| 国产乱国产乱老熟300部视频| 最近免费中文字幕在线第一页| 国产不卡一区二区在线观看| 日韩欧美一二三区| 日韩精品视频在线观看免费| 国产91久久久久蜜臀青青天草二| 久久久精品日韩欧美| 精品三级av| 婷婷精品进入| 亚洲欧洲一区二区天堂久久| 欧美日韩在线播放一区| 国产永久在线观看| 欧美日韩在线网站| 中文字幕在线看视频国产欧美| 免费视频一区三区| 国产成人精品免费久久久久| 日韩国产成人| 亚洲经典中文字幕| 亚洲一区精品在线| 日韩精品在线观看网站| 亚洲免费视频一区| 日韩手机在线观看视频| 久久久精品福利| 久久久精品网| 欧美午夜精品在线| 91www成人久久| 亚洲高清视频在线| 黄色片免费看| 久久精品网站免费观看| 国产wwww| 国产1卡2卡三卡四卡网站| 欧美日韩中文在线| 精品福利二区三区| 在线免费91| 欧美日韩第一区日日骚| 中文亚洲欧美| 国产在线观看a| 国产成人精品亚洲| 国产区高清在线| 国产在线一区二区视频| 韩国v欧美v日本v亚洲| 欧美日韩三级一区| 一区二区在线高清视频| 一区二区三区在线播放欧美| 91日韩欧美| 精品福利一区二区三区| 欧美日韩激情一区| 午夜黄色小视频| 日韩av二区| 日韩中文字幕91| 亚洲欧美99| 欧美va亚洲va日韩∨a综合色| 国产99在线|亚洲| 日本黄色一区二区| 一区二区三区在线播放欧美| 国产在线观看精品| 成片免费观看| 中文精品在线| 中文字幕欧美人妻精品一区蜜臀| 中文字幕久久av| 欧美一级在线观看| 日韩欧美国产一二三区| 久久riav| 在线中文字幕视频| 国产午夜精品一区二区三区视频| 久久婷婷亚洲| 日韩不卡av| 欧美一级久久| 影音先锋一区二区资源站 | 中文字幕精品国产| 日韩视频精品在线| 精品久久蜜桃| 玖玖在线免费视频| 在线观看国产福利视频| 国产亚洲一级| 韩国v欧美v日本v亚洲| 日韩亚洲不卡在线| 91av久久久| 国产又粗又猛又爽又黄91精品| 国产成人一区二区精品非洲| 久久久91精品国产| 精品视频国产| 日韩三级视频在线| 亚洲欧洲日韩在线| 国产在线观看精品| 伊人www22综合色| 欧美日韩精品在线视频| 日韩不卡在线播放| 国产欧美日韩在线看| 日韩亚洲不卡在线| av中文资源在线| 欧美在线视频一区二区| 国产日产一区二区| 亚洲欧美中文字幕| 国产wwww| 中文在线а√在线8| 欧洲精品在线一区| 日韩亚洲欧美中文三级| 日韩三级免费观看| 日韩av一区在线| 亚洲精品欧美二区三区中文字幕| 中文字幕在线国产| 黄色片网站在线| 欧美日韩一二三四| 成人福利一区| 亚洲免费中文字幕| 91精品国产高清| 一区二区视频在线观看免费的| 高清不卡一区二区| 极品久久久久久| 中文字幕视频在线观看| 欧美日韩尤物久久| 91精品国产自产91精品| 欧美日韩在线观看一区| 一级免费a一片| 日本不卡一区在线| 亚洲视频中文字幕| 欧美1234区| 黄色一级大片在线免费看国产一| 欧美三级日韩三级国产三级| av免费看在线| 一区二区在线观| 日韩精品三级| 亚洲综合在线小说| 久久精品国产成人一区二区三区| 久久精品人妻一区二区三区| 亚洲精品欧美二区三区中文字幕 | 天堂精品高清1区2区3区| 精品九九久久| 日本а中文在线天堂| 国产在线小视频| 国产对白在线| 久久香蕉精品| 日韩精品三级| 国产免费久久久| 在线视频你懂得一区| 日韩av综合在线观看| 亚洲视频电影在线| 欧美日韩在线观看首页| 快she精品国产999| 在线一区av| 国产传媒久久久| 国产免费电影网站入口| 国产精品一区二三区| 日韩av一区二区在线| 综合图区亚洲白拍在线| 中文字幕欧美国内| 久久久水蜜桃| 亚洲福利精品在线| av免费观看国产| 久久久精品网| 中文字幕第一页在线| 日韩在线 中文字幕| 中文欧美字幕免费| 日韩欧美在线字幕| 欧美日韩视频免费看| 国产在线中文字幕| 日韩 欧美 综合| 日韩欧美三级视频| 久久精品国产2020观看福利| 日韩精品在线中文字幕| 国产婷婷一区二区| 日韩欧美一二三四区| 欧美日韩在线三级| 精品日韩在线| 久久久另类综合| 国产91欧美| 伊人亚洲视频| 91www成人久久| 麻豆一区二区99久久久久| 精品日韩av| 国产亚洲欧美中文| 欧美三级日韩三级国产三级| 视频在线一区二区| 中文国产字幕在线观看| 中文字幕日韩欧美| 最近中文字幕第一页| 中文国产字幕在线观看| 久久久另类综合| 日韩在线一区二区| 91精品国产色综合久久不卡蜜臀| 亚洲区中文字幕| 91精品国产免费久久综合| 天堂在线www天堂中文在线| 欧美日韩国产在线| 中文字幕在线亚洲| 1024国产在线| 欧美日韩国产中文精品字幕自在自线| 国产在线视频不卡| 欧美日韩综合视频网址| 国产日韩1区| 日韩午夜中文字幕| 精品欧美久久久| 中文不卡在线| 久久久精品免费免费| 精品在线网站观看| 深夜福利一区| 国产 日韩 欧美 综合 一区| 国产h片在线观看| 中文字幕亚洲一区在线观看| 国产乱码午夜在线视频| 日韩国产欧美三级| 日韩网站中文字幕| 欧美日韩免费视频| 日韩在线 中文字幕| 中文在线中文字幕| 91精品国产综合久久香蕉的特点| 日韩黄色在线播放| 国产乱国产乱300精品| 精品国产99| 午夜国产福利一区二区| 日韩欧美在线中字| 国产在线日韩精品| 欧美国产综合视频| 久久99精品国产| 亚洲欧洲国产视频| 日韩av一区在线| 在线观看国产福利视频| 亚洲大片免费看| 精品国自产在线观看| 欧美日韩99| 国产在线欧美| 一区二区在线高清视频| 欧美亚洲国产激情| 亚洲小说春色综合另类网蜜桃| www.久久久精品| 精品久久蜜桃| 日韩欧美中文字幕公布| 国产精久久久久| 91精品视频国产| 欧美一级免费在线观看| 欧美日韩精品综合在线| 午夜亚洲一区| 亚洲一区在线观看网站| 日韩精品在线免费观看| 欧美日韩国产一区在线| 亚洲一区在线观看网站| 日韩久久在线| 久久久精品网| 91日韩欧美| 亚洲最新免费视频| 日韩中文字幕亚洲| 在线观看区一区二| 欧美日韩综合在线| 黄色欧美日韩| 欧美日韩精品欧美日韩精品| 精品国产乱码一区二区| 国产黄色在线看| 国产三级精品网站| a视频免费看| 91精品无人成人www| 亚洲制服一区| 日韩欧美在线看| 精品在线91| 日韩中文字幕视频在线观看| 一区二区在线视频播放| 日韩欧美成人一区二区三区| 国产欧美久久久| 欧美日韩国产在线看| 91精品国产乱码久久蜜臀| 精品国产乱码久久久久久蜜臀| 欧美一级手机免费观看片| 中文在线中文字幕| 日韩av一区二| 欧美日韩高清在线一区| 欧美日韩亚洲91| 国产日产一区二区三区 | 黄色片网站在线| 日韩精品福利一区二区三区| 日韩欧美中文第一页| 一二三区精品视频| 国产欧美日韩综合| 精品久久九九| 丰满少妇一区|