好程式設計師大資料學習路線之大資料自學路線二
好程式設計師大資料學習路線之大資料自學路線二
lambda 表示式
比較lambda 表示式和匿名內部類:
lambda 表示式就是簡單的匿名內部類
匿名內部類可以為任意介面建立例項,不管介面有多少抽象方法;
lambda 表示式只能為函式式介面建立例項(即只能有一個抽象方法)
基本語法:
( 引數 )-> 表示式、 ( 引數 )->{ 方法體 ;}
1. 形參:形參列表允許省略形參型別,若形參列表中只有一個引數,形參列表的圓括號也可以省略程式碼
2. 箭頭:透過英文的劃線號和大於符號組成
3. 程式碼塊:如果程式碼塊只包含一條語句, lambda 表示式允許省略程式碼塊的花括號
4. 返回值: lambda 程式碼塊只有一條 return 語句,甚至可以省略 return 關鍵字
lambda 表示式需要返回值,而它的程式碼塊中僅有一條省略了 return 的語句, lambda 表示式會自動返回這條語句的結果
5.lambda 表示式中變數的使用:如果是全域性的變數直接用,如果是區域性變數會預設在前面新增 final
```java
// 匿名內部類
InterfaceA a = new InterfaceA() {
public void show() {
System.out.println(" 匿名內部類的 show");
}
};
a.show();
// 透過 lambda 表示式
InterfaceA b = ()->{
System.out.println("lambda 表示式的 show");
};
b.show();
// 簡化
InterfaceA b1 = ()->System.out.println(" 簡化的 lambda 表示式的 show");
b1.show();
```
方法引用與構造器引用
1. 引用類方法
2. 引用特定物件的例項方法
3. 引用某類物件的例項方法
4. 引用構造方法
```java
//1. 沒有引數的
InterA aa = ()->System.out.println(" 沒有引數 ");
//2. 一個引數的
InterB bb = (ib)->System.out.println(" 一個引數 :"+ib);
//3. 兩個引數的
InterC cc = (ia,ib)->System.out.println(" 兩個引數 :"+"ia:"+ia+"ib:"+ib);
//4. 返回值
InterD dd = (i,j)->i+j;
int value1 = dd.showD(4, 7);
//5.lambda 表示式作為引數
```
```java
public class Demo3 {
public static void main(String[] args) {
//
//
//
//
}
}
//* 1. 引用類方法
interface Converter{
// 將字串轉換成整數
Integer convert(String value);
}
class Test1{
public static void fun1() {
}
}
//* 2. 引用特定物件的例項方法
interface IA{
public void show(String message);
}
class A{
public void play(String i) {
}
}
class Test2{
public static void fun2() {
}
}
//* 3. 引用某類物件的例項方法
interface IB{
String subString(String string,int stat,int end);
}
class Test3{
public static void fun3() {
}
}
//* 4. 引用構造方法
interface IC{
Object show(String name,int age);
}
class Person{
String name;
int age;
public Person(String name, int age) {
}
@Override
public String toString() {
}
}
class Test4{
public static void fun4() {
}
}
```
集合
可以儲存不同型別的多個資料,只能儲存引用資料型別,動態分配記憶體
Collection :介面
新增:boolean add(Object o); 、 boolean addAll(Collection<?> c);
刪除:boolean remove(Object o); 、 boolean removeAll(Collection<?> c); 、
判斷:boolean contains(Object o); 、 boolean contains(Collection<?> c);
獲取:Iterator<E> iterator();
集合變陣列:Object toArray();
List :介面:
有序的(儲存有序),可重複的
底層資料結構是陣列,執行緒不安全,特點:查詢速度快,新增刪除慢
底層資料結構是陣列,執行緒安全,特點:查詢速度快,新增刪除慢
底層資料結構是連結串列,執行緒不安全,特點:查詢速度慢,新增刪除快
Set :介面:
無序的,不可重複的
底層是雜湊表,執行緒不安全
底層是二叉樹,執行緒不安全
Map :介面
HashMap : DAY07 筆記 2019-07-30
TreeMap : DAY07 筆記 2019-07-30
泛型
透過< 資料型別 > 接受一種資料型別
1. 減少容錯處理,簡化程式碼
2. 將執行錯誤提前到編譯階段
泛型應用在方法上:
1. 類上的泛型與方法上的泛型保持一致
```java
class Dog<F>{
public void eat(F f) {
}
}
```
2. 方法上獨立使用泛型
```java
public <E> void song(E e) {
}
```
3. 靜態方法上使用泛型(必須獨立使用):
```java
public static <W> void show(W w) {}
```
泛型應用在介面上:
1. 子類上的泛型與介面上的一致
```java
interface Inte<E>{
public void show(E e);
}
class Pig<E> implements Inte<E>{
@Override
public void show(E e) {
}
}
```
2. 介面上使用泛型 , 子類上不用泛型
```java
interface Inte<E>{
public void show(E e);
}
class Bird implements Inte<String>{
public void show(String e) {};
}
```
1. 如果是重寫的方法 , 泛型與介面一致
2. 如果是子類自己的方法 , 可以與介面一致 , 也可以有自己的泛型
限制上限和限制下限
限制上限<? extends E> : E 以及 E 的子類
限制上限<? super E> : E 以及 E 的父類
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2657352/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料學習路線之大資料自學路線一程式設計師大資料
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 好程式設計師大資料學習路線Hbase總結程式設計師大資料
- 好程式設計師大資料學習路線之mapreduce概述程式設計師大資料
- 好程式設計師大資料學習路線Hadoop學習乾貨分享程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享HDFS學習總結程式設計師大資料
- 好程式設計師大資料學習路線分享hdfs學習乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享Map學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享執行緒學習筆記二程式設計師大資料執行緒筆記
- 好程式設計師大資料學習路線分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料學習路線之zookeeper乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享AWK詳解程式設計師大資料
- 好程式設計師大資料學習路線分享UDF函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享Lambda表示式程式設計師大資料
- 好程式設計師大資料學習路線分享大資料之執行緒程式設計師大資料執行緒
- 好程式設計師大資料學習路線分享大資料之基礎語法程式設計師大資料
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料學習路線hive內部函式程式設計師大資料Hive函式
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 好程式設計師大資料學習路線分享Hadoop機架感知程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享TCP和UDP學習筆記程式設計師大資料TCPUDP筆記
- 好程式設計師大資料學習路線分享彈性分散式資料集RDD程式設計師大資料分散式
- 好程式設計師大資料學習路線分享MapReduce全過程解析程式設計師大資料
- 好程式設計師大資料學習路線分享hive的執行方式程式設計師大資料Hive
- 好程式設計師大資料學習路線之hive表的查詢程式設計師大資料Hive
- 好程式設計師大資料學習路線之Logstach與flume對比程式設計師大資料
- 好程式設計師大資料學習路線分享什麼是Hash表程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala分支和迴圈程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全流程總結程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型