顯示具有 android studio,java 標籤的文章。 顯示所有文章
顯示具有 android studio,java 標籤的文章。 顯示所有文章

2022年5月13日 星期五

android studio:lambda表達式

Lambda可以說是匿名的函數,它沒有參數,但是有參數列表、函數主體、返回類型等,透過簡化的方法,減少程式出錯的機會。Lambda只能用在函數式的介面,這個介面只能有一個需實現的抽象類方法,這樣在放入參數時,介面才知道是要使用那一個方法。

它將函數的設定方式,透過->簡化成下列形式:
(參數) -> 表達式 或 (參數) ->{ 陳述式; }
其中參數可以是空值(),可以是一個值(x),多個值(x,y,z),也可以在值的前面加上類型。

以下面為例:

List<Integer> list =Arrays.asList(7, 2 6, 3, 1); //建立一個Arrays
//執行list中排序的方法
list.sort(new aa<Integer>());{
@Override
public int a(Integer a1, Integer a2){
return a1.compareTo(a2);
}
});

上述為了在sort這個方法的參數,引入aa的方法,在裡面又new了一個aa方法。而如果透過lambda的方法,就可以簡化成:
list.sort((a1, a2) -> a1.compareTo(a2);

a1及a2是原來上面a這個函數的參數,而a1.compareTo(a2)則是原來函式的返回值。上面的lambda可解釋為丟入a1及a2這兩個變數,而將a1.compareTo(a2)比較的結果,返回給sort當作參數。
另外,有一些函數的給予值是確定的,可以有更為簡化的寫法,如利用forEach將清單的每一個列都印出來:
list.forEach((e) ->System.out.println(e));
可更簡寫成:(前為類別::後為方法)方法的參數省略了。
list.forEach(System.out::println);












android studio:HashMap說明

HashMap繼承自AbstractMap,是一種透過key「鍵」及values「值」配對的一種儲存方式。

(一)宣告及創建實體的方法

HashMap<存值的類型> hashMap=new HashMap<存值的類型>();

HashMap<String, String> hashMap = new HashMap<String, String>();

(二)增加資料 .put("鍵", "值")
hashMap.put("name", "姓名"); //儲存hashMap中鍵為name,值為姓名


(三)取得資料 .get("鍵")
hashMap.get("name");  //取得鍵為name 的值

(四)移除資料 .remove("鍵")
hashMap.remove("name"); //移除鍵為name的值

(五)清除所有清單資料 .clear();
hashMap.clear();  //清除hashMap的所以資料

(六)取得長度 .size();

int hashMapSize=hashMap.size(); //將 hashMap的清單長度存到ashMapSize這個變數中

(七)將hasMap的所有鍵設為清單 keySet()
hasMap.keySet()

透過forEach方法取出所有鍵值範例:
// 印出key
for (String i : hasMap.keySet()) {
  System.out.println(i);
}

(八)將hasMap的所有值設為清單 .values()
hasMap.values()


延伸參考:https://www.w3schools.com/java/java_hashmap.asp
               https://www.runoob.com/java/java-hashmap.html
               https://www.runoob.com/java/java-hashtable-class.html