導航:首頁 > 編程語言 > java8foreach

java8foreach

發布時間:2024-07-28 08:48:19

java中for each的用法

foreach語句是java5的新特徵之一,在遍歷數組、集合方面,foreach為開發人員提供了極大的方便。
foreach語句是for語句的特殊簡化版本,但是foreach語句並不能完全取代for語句,然而,任何的foreach語句都可以改寫為for語句版本。
foreach並不是一個關鍵字,習慣上將這種特殊的for語句格式稱之為「foreach」語句。從英文字面意思理解foreach也就是「for 每一個」的意思。實際上也就是這個意思。
foreach的語句格式:
for(元素類型t 元素變數x : 遍歷對象obj){
引用了x的java語句;
}
下面通過兩個例子簡單例子看看foreach是如何簡化編程的。代碼如下:
一、foreach簡化數組和集合的遍歷
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2007-12-3
* Time: 16:58:24
* Java5新特徵之foreach語句使用總結
*/
public class TestArray {
public static void main(String args[]) {
TestArray test = new TestArray();
test.test1();
test.listToArray();
test.testArray3();

}

/**
* foreach語句輸出一維數組
*/
public void test1() {
//定義並初始化一個數組
int arr[] = {2, 3, 1};
System.out.println("----1----排序前的一維數組");
for (int x : arr) {
System.out.println(x); //逐個輸出數組元素的值
}

//對數組排序
Arrays.sort(arr);

//利用java新特性for each循環輸出數組
System.out.println("----1----排序後的一維數組");
for (int x : arr) {
System.out.println(x); //逐個輸出數組元素的值
}
}

/**
* 集合轉換為一維數組
*/
public void listToArray() {
//創建List並添加元素
List<String> list = new ArrayList<String>();
list.add("1");
list.add("3");
list.add("4");

//利用froeach語句輸出集合元素
System.out.println("----2----froeach語句輸出集合元素");
for (String x : list) {
System.out.println(x);
}

//將ArrayList轉換為數組
Object s[] = list.toArray();

//利用froeach語句輸出集合元素
System.out.println("----2----froeach語句輸出集合轉換而來的數組元素");
for (Object x : s) {
System.out.println(x.toString()); //逐個輸出數組元素的值
}
}

/**
* foreach輸出二維數組測試
*/
public void testArray2() {
int arr2[][] = {{4, 3}, {1, 2}};
System.out.println("----3----foreach輸出二維數組測試");
for (int x[] : arr2) {
for (int e : x) {
System.out.println(e); //逐個輸出數組元素的值
}
}
}

/**
* foreach輸出三維數組
*/
public void testArray3() {
int arr[][][] = {
{{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
};

System.out.println("----4----foreach輸出三維數組測試");
for (int[][] a2 : arr) {
for (int[] a1 : a2) {
for (int x : a1) {
System.out.println(x);
}
}
}
}
}
運行結果:
----1----排序前的一維數組
2
3
1
----1----排序後的一維數組
1
2
3
----2----froeach語句輸出集合元素
1
3
4
----2----froeach語句輸出集合轉換而來的數組元素
1
3
4
----4----foreach輸出三維數組測試
1
2
3
4
5
6
7
8

Process finished with exit code 0
二、foreach語句的局限性
通過上面的例子可以發現,如果要引用數組或者集合的索引,則foreach語句無法做到,foreach僅僅老老實實地遍歷數組或者集合一遍。下面看一個例子就明白了:
/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2007-12-3
* Time: 17:07:30
* foreach語句的局限性
*/
public class TestArray2 {

public static void main(String args[]) {
//定義一個一維數組
int arr[] = new int[4];
System.out.println("----未賦值前輸出剛剛定義的數組----");
for (int x : arr) {
System.out.println(x);
}

//通過索引給數組元素賦值
System.out.println("----通過循環變數給數組元素賦值----");
for (int i = 3; i > 0; i--) {
arr[i] = i;
}
//循環輸出創建的數組
System.out.println("----賦值後,foreach輸出創建好的數組----");
for (int x : arr) {
System.out.println(x);
}
}
}

運行結果:
----未賦值前輸出剛剛定義的數組----
0
0
0
0
----通過循環變數給數組元素賦值----
----賦值後,foreach輸出創建好的數組----
0
1
2
3

Process finished with exit code 0
三、總結
foreach語句是for語句特殊情況下的增強版本,簡化了編程,提高了代碼的可讀性和安全性(不用怕數組越界)。相對老的for語句來說是個很好的補充。提倡能用foreach的地方就不要再用for了。在用到對集合或者數組索引的情況下,foreach顯得力不從心,這個時候是用for語句的時候了。foreach一般結合泛型使用

㈡ 濡備綍楂樻晥鐨勯亶鍘哅ap錛熶綘甯哥敤鐨勪笉涓瀹氭槸鏈蹇鐨

濡傛枃絝犳爣棰樻墍璦錛岄亶鍘哅ap鏄寮鍙戣繃紼嬩腑姣旇緝甯歌佺殑琛屼負錛屽疄鐜扮殑鏂瑰紡涔熸湁澶氱嶆柟寮忥紝鏈鏂囧甫棰嗗ぇ瀹朵竴璧風湅鐪嬫洿鍔犻珮鏁堢殑閬嶅巻 Map 銆

棣栧厛涓璧鋒潵鐪嬬湅錛屾湁鍝浜涢亶鍘 Map 鐨勬柟寮

榪欑嶅簲璇ョ畻鏄姣旇緝甯歌佺殑浣跨敤鏂瑰紡錛屼篃鏄姣旇緝瀹規槗鐞嗚В鐨

keySet 錛 鑾峰彇 map 涓鎵鏈夌殑 key 錛岀劧鍚庝緷嬈¢亶鍘嗘瘡涓 key 銆

榪欑嶆槸鎴戝鉤鏃跺紑鍙戜腑鐢ㄧ殑鏈澶氱殑鏂瑰紡錛岀畝鍗曢氫織鏄撴噦銆

浣嗘槸鍏舵ц兘濡備綍鍛錛熷悗緇寰呮彮縐樸

涓嶇煡閬撴湁澶氬皯浜虹敤榪 Java8 涓鐨 parallel妯″紡錛屾湰璐ㄦ槸涓縐嶅苟琛屽勭悊鏂瑰紡銆

鎬ц兘濡備綍錛熺◢鍚庢彮鏅撱

涓嶈屽氨鎵炬壘澶栨彺璇曡瘯錛

嫻嬭瘯鐜澧冨備笅錛欼ntel i7-4790 3.60 GHz, 16 GB

嫻嬭瘯闆嗕負灝忕殑Map闆嗗悎錛堝ぇ綰100涓鍏冪礌錛夛紝鍚勪釜鏂規硶鑰楁椂濡備笅錛

浠庣粨鏋滅湅鍑猴紝鍦ㄦ暟鎹閲忔瘮杈冨皬鏃訛紝 鍒╃敤 Java 8涓鐨刦oreach 鏆傛椂棰嗗厛銆

嫻嬭瘯闆嗕負鍏冪礌鏁版嵁閲 1000 鐨 Map 闆嗗悎錛屾祴璇曠粨鏋滃備笅錛

浠庣粨鏋滈泦鍚堢湅錛屽湪涓絳夋暟鎹閲忔儏鍐典笅錛屽栨彺 Eclipse (CS) collections 涓鐨 MutableMap 琛ㄧ幇鏈涓轟紭寮傦紝鍕囧緱絎涓銆

鍏舵′負 Java 8 涓鐨 foreach 錛屼綅鍒楃浜屻

嫻嬭瘯闆嗕負鍏冪礌鏁版嵁閲 100000 錛堝嶮涓囩駭鍒錛 鐨 Map 闆嗗悎錛屾祴璇曠粨鏋滃備笅錛

鍒╃敤 iterator 鍜 Map.Entry 銆愭柟娉1銆戠ǔ灞呯涓錛岄嗗厛 絎浜屽悕宸涓嶅7s銆

絎浜屽悕涓 Eclipse (CS) collections 涓鐨 MutableMap 浣嶅垪絎浜岋紝鍦ㄥぇ鏁版嵁閲忎笅琛ㄧ幇琛ㄧ幇姣旇緝鍑鴻壊銆

鎸囩殑娉ㄦ剰鐨勬槸涔嬪墠鍦ㄥ皬鏁版嵁閲忎笅琛ㄧ幇姣旇緝鍑鴻壊鐨 Java 8 涓鐨 foreach 錛屾帓鍚嶅嵈姣旇緝闈犲悗錛屼絾鏄浠嶇劧瓚呰繃浜嗗埄鐢 Java8 鐨 Stream API 銆

鍏朵腑榪樻湁鍙︿竴涓鐜拌薄錛氬埄鐢ㄥ苟琛屾ā寮忚$畻鐨 Java8 涓鐨 Stream API parallel 錛屽湪澶ф暟鎹閲忔椂琛ㄧ幇濂戒簬 foreach 鍜 stream api 銆

涓嬭〃涓轟笉鍚屾暟鎹閲忔儏鍐典笅鐨勫悇涓鏂規硶鎬ц兘琛ㄧ幇

鍦ㄥ鉤鏃跺紑鍙戜腑錛屾暟鎹閲忛兘涓嶇畻澶澶ф椂錛屽墫闄ゅ栨彺鑰岃█錛 Java 8 涓鐨 foreach 銆愭柟娉3銆戱紝琛ㄧ幇姣旇緝浼樺紓銆傝屽苟琛岃繍綆楃殑 Stream API parallel 銆愭柟娉8銆戣〃鐜版病鏈夋兂璞′腑濂斤紝 Stream API 銆愭柟娉7銆戣〃鐜頒腑瑙勪腑鐭┿

涓昏佺綏鍒椾簡澶氱嶉亶鍘 Map 鐨勬柟寮忥紝姣忎釜瀹炵幇鏂瑰紡閮芥湁鍚勮嚜鐨勭壒鐐癸紝鏈夌殑浜哄枩嬈 foreach 鐨勯氫織鏄撴噦錛涙湁鐨勪漢鍠滄 stream 鐨勫共鍑鍒╄惤銆

濡傛灉浠庢ц兘鏉ョ湅錛屽皬鏁版嵁閲忔儏鍐典笅錛氫紭鍏堟帹鑽愪嬌鐢 Java8 Foreach 銆愭柟娉3銆戙

澶ф暟鎹閲忔儏鍐典笅鎺ㄨ崘 浣跨敤 iterator 鍜 Map.Entry 銆愭柟娉1銆戙

鎴戞槸澶ч粍錛屼竴涓鍙浼氬啓 HelloWorld 鐨勭▼搴忓憳錛屼笅鏈熻併

㈢ Java8,stream().map().collect(Collectors.toList()).forEach()和stream().map().forEach()有啥區別

在stream().map().collect(Collectors.toList()).forEach()中,你的forEach()針對的List;而
stream().map().forEach()針對的是Stream流。從結果操作來看是一樣的,中間過程回產生一些臨時變數。

㈣ Java中怎麼遍歷map中value值

Java中遍歷Map對象的4種方法:

1、通過Map.entrySet遍歷key和value,在for-each循環中使用entries來遍歷.推薦,尤其是容量大時。

(4)java8foreach擴展閱讀:

關於JAVA的遍歷知識補充:

1、list和set集合都實現了Iterable介面,所以他們的實現類可以使用迭代器遍歷,map集合未實現該介面,若要使用迭代器循環遍歷,需要藉助set集合。

2、使用EntrySet 遍歷,效率更高。

㈤ java涓鐨刦oreach寰鐜鍑洪敊錛孲yntax error

鏈浣崇瓟妗堥敊浜嗭紝澶у跺埆琚璇瀵

1銆

綆鍗曟潵璇達紝JDK1.8涔嬪墠鐨刦oreach寰鐜鎸囩殑閮芥槸for寰鐜鐨勫彟涓縐嶇敤娉:for(Object o : objects)錛屽尯鍒浜庢渶緇忓吀鐨刦or(;;)錛岃孞AVA8錛圝DK1.8錛変腑鍦ㄥ筳ava闆嗗悎綾伙紙Set銆丩ist銆丮ap銆丵ueue錛夌殑閬嶅巻涓鏂板炰簡涓涓猣oreach鐨勭被鏂規硶鐢ㄤ簬闆嗗悎鍐呭驚鐜銆傛墍浠ラ棶棰樹腑鐨勮娉曟槸鍙鐢ㄧ殑銆


琛ュ厖錛氱敱JDK1.8涓鐨勬弿榪幫紝foreach鐨勫弬鏁版槸涓涓狢onsumer瀵硅薄錛岃ュ硅薄鏄涓涓鍑芥暟寮忔帴鍙o紝鍑℃槸鍑芥暟寮忔帴鍙g殑瀵硅薄閮藉彲浠ョ洿鎺ヤ嬌鐢↙ambda琛ㄨ揪寮忥紝鑰岄樼洰涓鐨凷ystem.out::println()灝辨槸涓涓綆鍖栦簡鐨凩ambda錛岀渷鐣ヤ簡鍙傛暟鍜屾嫭鍙瘋屽凡銆

㈥ Java9都快發布了,Java8的十大新特性你了解多少呢

一、Lambda表達式

Lambda表達式可以說是Java 8最大的賣點,她將函數式編程引入了Java。Lambda允許把函數作為一個方法的參數,或者把代碼看成數據。

一個Lambda表達式可以由用逗號分隔的參數列表、–>符號與函數體三部分表示。例如:

Arrays.asList( "p", "k", "u","f", "o", "r","k").forEach( e -> System.out.println( e ) );

1 Arrays.asList( "p", "k", "u","f", "o", "r","k").forEach( e -> System.out.println( e ) );

為了使現有函數更好的支持Lambda表達式,Java
8引入了函數式介面的概念。函數式介面就是只有一個方法的普通介面。java.lang.Runnable與java.util.concurrent.Callable是函數式介面最典型的例子。為此,Java
8增加了一種特殊的註解@FunctionalInterface:

1 @FunctionalInterface
2 public interface Functional {
3 void method();
4 }

二、介面的默認方法與靜態方法

我們可以在介面中定義默認方法,使用default關鍵字,並提供默認的實現。所有實現這個介面的類都會接受默認方法的實現,除非子類提供的自己的實現。例如:

1 public interface DefaultFunctionInterface {
2 default String defaultFunction() {
3 return "default function";
4 }
5 }

我們還可以在介面中定義靜態方法,使用static關鍵字,也可以提供實現。例如:

1 public interface StaticFunctionInterface {
2 static String staticFunction() {
3 return "static function";
4 }
5 }

介面的默認方法和靜態方法的引入,其實可以認為引入了C++中抽象類的理念,以後我們再也不用在每個實現類中都寫重復的代碼了。

三、方法引用

通常與Lambda表達式聯合使用,可以直接引用已有Java類或對象的方法。一般有四種不同的方法引用:

構造器引用。語法是Class::new,或者更一般的Class< T >::new,要求構造器方法是沒有參數;

靜態方法引用。語法是Class::static_method,要求接受一個Class類型的參數;

特定類的任意對象方法引用。它的語法是Class::method。要求方法是沒有參數的;

特定對象的方法引用,它的語法是instance::method。要求方法接受一個參數,與3不同的地方在於,3是在列表元素上分別調用方法,而4是在某個對象上調用方法,將列表元素作為參數傳入;

四、重復註解

在Java 5中使用註解有一個限制,即相同的註解在同一位置只能聲明一次。Java
8引入重復註解,這樣相同的註解在同一地方也可以聲明多次。重復註解機制本身需要用@Repeatable註解。Java
8在編譯器層做了優化,相同註解會以集合的方式保存,因此底層的原理並沒有變化。

五、擴展註解的支持

Java 8擴展了註解的上下文,幾乎可以為任何東西添加註解,包括局部變數、泛型類、父類與介面的實現,連方法的異常也能添加註解。

六、Optional

Java 8引入Optional類來防止空指針異常,Optional類最先是由Google的Guava項目引入的。Optional類實際上是個容器:它可以保存類型T的值,或者保存null。使用Optional類我們就不用顯式進行空指針檢查了。

七、Stream

Stream
API是把真正的函數式編程風格引入到Java中。其實簡單來說可以把Stream理解為MapRece,當然Google的MapRece的靈感也是來自函數式編程。她其實是一連串支持連續、並行聚集操作的元素。從語法上看,也很像linux的管道、或者鏈式編程,代碼寫起來簡潔明了,非常酷帥!

八、Date/Time API (JSR 310)

Java 8新的Date-Time API (JSR 310)受Joda-Time的影響,提供了新的java.time包,可以用來替代
java.util.Date和java.util.Calendar。一般會用到Clock、LocaleDate、LocalTime、LocaleDateTime、ZonedDateTime、Duration這些類,對於時間日期的改進還是非常不錯的。

九、JavaScript引擎Nashorn

Nashorn允許在JVM上開發運行JavaScript應用,允許Java與JavaScript相互調用。

十、Base64

在Java 8中,Base64編碼成為了Java類庫的標准。Base64類同時還提供了對URL、MIME友好的編碼器與解碼器。

除了這十大新特性之外,還有另外的一些新特性:

更好的類型推測機制:Java 8在類型推測方面有了很大的提高,這就使代碼更整潔,不需要太多的強制類型轉換了。

編譯器優化:Java 8將方法的參數名加入了位元組碼中,這樣在運行時通過反射就能獲取到參數名,只需要在編譯時使用-parameters參數。

並行(parallel)數組:支持對數組進行並行處理,主要是parallelSort()方法,它可以在多核機器上極大提高數組排序的速度。

並發(Concurrency):在新增Stream機制與Lambda的基礎之上,加入了一些新方法來支持聚集操作。

Nashorn引擎jjs:基於Nashorn引擎的命令行工具。它接受一些JavaScript源代碼為參數,並且執行這些源代碼。

類依賴分析器jdeps:可以顯示Java類的包級別或類級別的依賴。

JVM的PermGen空間被移除:取代它的是Metaspace(JEP 122)。

㈦ Java8的特性有哪些

1、函數式介面
Java 8 引入的一個核心概念是函數式介面(Functional Interfaces)。通過在介面裡面添加一個抽象方法,這些方法可以直接從介面中運行。如果一個介面定義個唯一一個抽象方法,那麼這個介面就成為函數式介面。同時,引入了一個新的註解:@FunctionalInterface。可以把他它放在一個介面前,表示這個介面是一個函數式介面。這個註解是非必須的,只要介面只包含一個方法的介面,虛擬機會自動判斷,不過最好在介面上使用註解 @FunctionalInterface 進行聲明。在介面中添加了 @FunctionalInterface 的介面,只允許有一個抽象方法,否則編譯器也會報錯。
java.lang.Runnable 就是一個函數式介面。
@FunctionalInterface
public interface Runnable {
public abstract void run();
}

2、Lambda 表達式
函數式介面的重要屬性是:我們能夠使用 Lambda 實例化它們,Lambda 表達式讓你能夠將函數作為方法參數,或者將代碼作為數據對待。Lambda 表達式的引入給開發者帶來了不少優點:在 Java 8 之前,匿名內部類,監聽器和事件處理器的使用都顯得很冗長,代碼可讀性很差,Lambda 表達式的應用則使代碼變得更加緊湊,可讀性增強;Lambda 表達式使並行操作大集合變得很方便,可以充分發揮多核 CPU 的優勢,更易於為多核處理器編寫代碼;
Lambda 表達式由三個部分組成:第一部分為一個括弧內用逗號分隔的形式參數,參數是函數式介面裡面方法的參數;第二部分為一個箭頭符號:->;第三部分為方法體,可以是表達式和代碼塊。語法如下:
1. 方法體為表達式,該表達式的值作為返回值返回。
(parameters) -> expression

2. 方法體為代碼塊,必須用 {} 來包裹起來,且需要一個 return 返回值,但若函數式介面裡面方法返回值是 void,則無需返回值。
(parameters) -> { statements; }
例如,下面是使用匿名內部類和 Lambda 表達式的代碼比較。

下面是用匿名內部類的代碼:
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.print("Helllo Lambda in actionPerformed");
}
});
下面是使用 Lambda 表達式後:
button.addActionListener(
\\actionPerformed 有一個參數 e 傳入,所以用 (ActionEvent e)
(ActionEvent e)->
System.out.print("Helllo Lambda in actionPerformed")
);

上面是方法體包含了參數傳入 (ActionEvent e),如果沒有參數則只需 ( ),例如 Thread 中的 run 方法就沒有參數傳入,當它使用 Lambda 表達式後:
Thread t = new Thread(
\\run 沒有參數傳入,所以用 (), 後面用 {} 包起方法體
() -> {
System.out.println("Hello from a thread in run");
}
);
通過上面兩個代碼的比較可以發現使用 Lambda 表達式可以簡化代碼,並提高代碼的可讀性。
為了進一步簡化 Lambda 表達式,可以使用方法引用。例如,下面三種分別是使用內部類,使用 Lambda 表示式和使用方法引用方式的比較:
//1. 使用內部類
Function<Integer, String> f = new Function<Integer,String>(){
@Override
public String apply(Integer t) {
return null;
}
};
//2. 使用 Lambda 表達式
Function<Integer, String> f2 = (t)->String.valueOf(t);
//3. 使用方法引用的方式
Function<Integer, String> f1 = String::valueOf;

要使用 Lambda 表達式,需要定義一個函數式介面,這樣往往會讓程序充斥著過量的僅為 Lambda 表達式服務的函數式介面。為了減少這樣過量的函數式介面,Java 8 在 java.util.function 中增加了不少新的函數式通用介面。例如:
Function<T, R>:將 T 作為輸入,返回 R 作為輸出,他還包含了和其他函數組合的默認方法。
Predicate<T> :將 T 作為輸入,返回一個布爾值作為輸出,該介麵包含多種默認方法來將 Predicate 組合成其他復雜的邏輯(與、或、非)。
Consumer<T> :將 T 作為輸入,不返回任何內容,表示在單個參數上的操作。
例如,People 類中有一個方法 getMaleList 需要獲取男性的列表,這里需要定義一個函數式介面 PersonInterface:
interface PersonInterface {
public boolean test(Person person);
}
public class People {
private List<Person> persons= new ArrayList<Person>();
public List<Person> getMaleList(PersonInterface filter) {
List<Person> res = new ArrayList<Person>();
persons.forEach(
(Person person) ->
{
if (filter.test(person)) {//調用 PersonInterface 的方法
res.add(person);
}
}
);
return res;
}
}
為了去除 PersonInterface 這個函數式介面,可以用通用函數式介面 Predicate 替代如下:
class People{
private List<Person> persons= new ArrayList<Person>();
public List<Person> getMaleList(Predicate<Person> predicate) {
List<Person> res = new ArrayList<Person>();
persons.forEach(
person -> {
if (predicate.test(person)) {//調用 Predicate 的抽象方法 test
res.add(person);
}
});
return res;
}
}

3、介面的增強
Java 8 對介面做了進一步的增強。在介面中可以添加使用 default 關鍵字修飾的非抽象方法。還可以在介面中定義靜態方法。如今,介面看上去與抽象類的功能越來越類似了。
默認方法
Java 8 還允許我們給介面添加一個非抽象的方法實現,只需要使用 default 關鍵字即可,這個特徵又叫做擴展方法。在實現該介面時,該默認擴展方法在子類上可以直接使用,它的使用方式類似於抽象類中非抽象成員方法。但擴展方法不能夠重載 Object 中的方法。例如:toString、equals、 hashCode 不能在介面中被重載。
例如,下面介面中定義了一個默認方法 count(),該方法可以在子類中直接使用。
public interface DefaultFunInterface {
//定義默認方法 countdefault int count(){
return 1;
}
}
public class SubDefaultFunClass implements DefaultFunInterface {
public static void main(String[] args){
//實例化一個子類對象,改子類對象可以直接調用父介面中的默認方法 count
SubDefaultFunClass sub = new SubDefaultFunClass();
sub.count();
}
}

靜態方法
在介面中,還允許定義靜態的方法。介面中的靜態方法可以直接用介面來調用。
例如,下面介面中定義了一個靜態方法 find,該方法可以直接用 StaticFunInterface .find() 來調用。
public interface StaticFunInterface {public static int find(){
return 1;
}
}
public class TestStaticFun {
public static void main(String[] args){
//介面中定義了靜態方法 find 直接被調用
StaticFunInterface.fine();
}
}

閱讀全文

與java8foreach相關的資料

熱點內容
mac多個php版本 瀏覽:589
資源動漫壓縮包 瀏覽:899
雲伺服器如何做路由器 瀏覽:689
python看後感 瀏覽:169
下載app為什麼顯示購買 瀏覽:787
安卓怎麼把資料一鍵轉移到舊蘋果 瀏覽:607
啟發式演算法matlab 瀏覽:30
安卓手機怎麼和外國人打電話 瀏覽:25
解套app什麼用 瀏覽:993
python賦值方式復合賦值 瀏覽:380
修改linuxlang 瀏覽:17
成熟的app開發需考慮什麼 瀏覽:790
如何將安裝包變成解壓包 瀏覽:342
單片機中的alu是個啥 瀏覽:365
花灑防爆管加密管和軟管 瀏覽:879
龍族幻想同伺服器怎麼一起進跨服 瀏覽:862
手機閱讀pdf的軟體 瀏覽:861
centosphptar 瀏覽:803
php對資料庫增刪該查 瀏覽:478
如何玩我的世界國際版里的伺服器 瀏覽:64