Skip to content

Commit 30852d0

Browse files
committed
Chapter 1
liste işlemlerine ek örnekler.
1 parent 9ed29a2 commit 30852d0

File tree

2 files changed

+110
-5
lines changed

2 files changed

+110
-5
lines changed

BasicSyntax/app/src/main/java/com/merttan/BasicSyntax/MainActivity.kt

+103-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ package com.merttan.BasicSyntax
22

33
import androidx.appcompat.app.AppCompatActivity
44
import android.os.Bundle
5+
import android.service.autofill.CharSequenceTransformation
56
import java.lang.Double.sum
7+
import java.util.*
8+
import kotlin.collections.ArrayList
69

710
class MainActivity : AppCompatActivity() {
811

@@ -47,11 +50,6 @@ class MainActivity : AppCompatActivity() {
4750
list.add(4)
4851
println(list)// [1,2,3,4]
4952

50-
println("----------------Smart-Casted--------------")
51-
52-
53-
54-
5553

5654

5755

@@ -92,10 +90,103 @@ class MainActivity : AppCompatActivity() {
9290
programı senkronize etmek veya mantık yürütmek gerektiği zaman sorunların ana kaynağı
9391
olan mutasyon noktası sunmaz. Bu nedenle var yerine val tercih ediyoruz.
9492
*/
93+
94+
println("-----------Smart-Case----------")
95+
/*
96+
if(fullNameS != null){
97+
println(fullNameS2.length) //ERROR : Smart cast impossible
98+
}
99+
*/
100+
101+
if(fullNameS2 != null){
102+
println(fullNameS2.length) // Yalçın Bulut
103+
}
104+
105+
println("-----------Mutable ve Read-Only collectionlar arasındaki farklar----------")
106+
107+
val dizi=listOf(1,2,3)
108+
/*
109+
// Hatalı Down cating işlemi Hata verecek
110+
if(dizi is MutableList){
111+
dizi.add(4)
112+
}
113+
*/
114+
115+
116+
//Doğru Down casting işlemi
117+
118+
val dizi2=listOf(1,2,3)
119+
val mutableList =dizi2.toMutableList()
120+
mutableList.add(4)
121+
122+
println(mutableList)
123+
124+
/*
125+
val names : SortedSet<FullName> =TreeSet()
126+
val person : FullName ("AAA","AAA")
127+
names.add(person)
128+
*/
129+
130+
// User modelinden işlemler
131+
var user =User("MERT","TAN")
132+
user=user.copy(surname="ÇAKAR")
133+
println(user) // User (name=MERT, surname=ÇAKAR)
134+
println("-----------------------------------------------------------")
135+
136+
// 2 şekilde liste oluşturup listeye eleman atama şekli
137+
val list1 :MutableList<Int> = mutableListOf()
138+
var list2 :List<Int> = listOf()
139+
list1.add(1453)
140+
list2 = list2 +1907
141+
println(list1)
142+
println(list2)
143+
println("-----------------------------------------------------------")
144+
list1 +=1
145+
list2 +=1
146+
println(list1)
147+
println(list2)
148+
println("-----------------------------------------------------------")
149+
list1.plusAssign(1)
150+
list2 = list2.plus(1)
151+
println(list1)
152+
println(list2)
153+
println("-----------------------------------------------------------")
154+
val list3 :MutableList<String> = mutableListOf()
155+
var list4 :List<String> = listOf()
156+
list3.add("Fatih")
157+
list4=list4 + "İstanbul"
158+
println(list3)
159+
println(list4)
160+
println("-----------------------------------------------------------")
161+
list3 += "Sultan"
162+
list4 += "İzmir"
163+
println(list3)
164+
println(list4)
165+
println("-----------------------------------------------------------")
166+
list3.plusAssign("Mehmet")
167+
list4 = list4.plus("Eskişehir")
168+
println(list3)
169+
println(list4)
170+
171+
172+
173+
95174
}
96175

97176

98177

178+
179+
180+
181+
182+
inline fun<T ,R> Iterable<T>.map(transformation: (T) -> R) :List<R> {
183+
val list = ArrayList<R>()
184+
for (elem in this) {
185+
list.add(transformation(elem))
186+
}
187+
return list
188+
}
189+
99190
fun printSum(a: Int, b: Int): Unit {
100191
println("sum of $a and $b is ${a + b}")
101192
}
@@ -145,6 +236,13 @@ class MainActivity : AppCompatActivity() {
145236

146237

147238
// ----------------Smart-Casted--------------
239+
val nameS :String="Yalçın"
240+
val surnameS :String="Bulut"
241+
val fullNameS : String
242+
get() = nameS?.let { "$it $surnameS" }
243+
val fullNameS2 :String? =nameS.let { "$it $surnameS" }
244+
245+
148246

149247

150248

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.merttan.BasicSyntax
2+
3+
4+
data class User(val name: String,
5+
val surname: String
6+
)
7+

0 commit comments

Comments
 (0)