
kotlin
Mars-xq
好记性不如烂笔头。
展开
-
kotlin 集合list
创建listOf/** * 不可变集合 */private fun createList1() { //创建不可变List //listOf()用于创建没有元素的空List val mList1: List<Int> = listOf() println(mList1) //[] //listOf(element: T)用于创...原创 2020-05-08 14:42:46 · 351 阅读 · 0 评论 -
kotlin 集合:filter/groupBy
过滤与分组filterprivate fun filter() { val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0) val resultList = mList.filter { it > 5 } println(resultList)}//[6, 7, 8, 9]g...原创 2020-05-08 14:41:16 · 5629 阅读 · 0 评论 -
kotlin 集合 : indexOf / elementAt/ / first / last
找元素indexOf : 元素 找 下标/** * 元素 找 下标 */private fun indexOf() { val mList = listOf(1, 2, 3, 4, 2) //返回指定元素的下标,没有就返回-1 println(mList.indexOf(3))//2 println(mList.indexOf(0))//-1 ...原创 2020-05-08 14:39:01 · 6125 阅读 · 0 评论 -
kotlin 集合 : any/none/all
any : 是否至少有一个/** * 是否有(符合条件的)元素 */private fun any() { //判断集合元素,如果集合为空,返回false, 集合中存有一个或多个元素时返回true val mList1 = arrayListOf(1, 2, 3, 4, 5) val mList2: ArrayList<Int> = arrayList...原创 2020-05-08 14:35:48 · 3744 阅读 · 0 评论 -
kotlin集合: 集合间操作 : intersect/subtract/union/minus/plus/retainAll
集合间操作intersect(…) : 返回一个集合,其中包含此集合和指定集合所包含的所有元素,交集subtract(…) : 返回一个集合,其中包含此数组包含但未包含在指定集合中的所有元素,差集union(…) : 返回包含两个集合中所有不同元素的集合,并集minus(…) : 返回包含原始集合的所有元素的列表,但给定的数组中包含的元素除外,补集plus : 合并private ...原创 2020-05-08 14:31:45 · 6543 阅读 · 1 评论 -
kotlin 集合 : map/mapNotNull/mapIndexed/mapIndexedNotNull/flatMap
map :// map{...} : 把每个元素按照特定的方法进行转换,并返回一个新的集合private fun map() { val mList = arrayListOf(null, 0, 1, 2, 3, 4, 5, 6, null) val mapList = mList.map { it?.let { it * 2 } } pri...原创 2020-05-08 14:28:59 · 4266 阅读 · 0 评论 -
kotlin 集合 : take/takeWhile/takeIf/takeUnless 与 drop/dropLast/dropLastWhile/dropWhile
一、taketakeprivate fun take() { val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0) //take函数是根据传入的参数挑出该集合【前n个元素】的子集合 val mNewList1 = mList.take(2) println(mNewList1) //[1, 2]...原创 2020-05-08 14:26:37 · 3545 阅读 · 2 评论 -
kotlin lambda与sam、匿名内部类、接口回调
一、lambda与samSAM 转换 (Single Abstract Method Conversions): 即SAM 转换就是 kotlin 在调用 java 代码时能使用 Lambdajava中实现了只有一个接口当参数的类参考:Kotlin学习笔记(五十七)SAM转换 为什么 Kotlin 调用 java 时可以使用 Lambda? 示例:/** * kotlin与java...原创 2020-02-21 14:23:49 · 1010 阅读 · 0 评论 -
kotlin 汇总练习
测试一:/** * 少数名族,每科成绩加五分,并展示 */data class User1( var physical: Int = 10, var chemistry: Int = 20, var geography: Int = 30, var chinese: Int = 40, var math: Int = 50, var engl...原创 2020-01-19 17:21:40 · 1001 阅读 · 0 评论 -
kotlin(对比) : 普通方法/匿名函数/lambda/闭包 与 invoke
测试一:fun main(args: Array<String>) { //以下执行结果一样 println(ordinaryMethod(1, 5)) println("------------------------") println(anonymousFunction1(1, 5)) println(anonymousFunction1...原创 2020-01-17 14:39:39 · 941 阅读 · 0 评论 -
kotlin : infix函数(中缀方法)
参考:Kotlin简明学习,infix函数val map = mapOf( 1 to "one", 2 to "two", 3 to "three")点击to 可看到是一个中缀方法:public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)infix函数(中...原创 2020-01-17 10:49:41 · 2588 阅读 · 2 评论 -
kotlin : BooleanExt
//===================================================================//// BooleanExt////===================================================================//T的子类sealed class BooleanExt<out ...原创 2020-01-17 10:26:00 · 443 阅读 · 0 评论 -
kotlin : 注解(Annotation):枚举类(enum)与@IntDef @StringDef与静态常量
Java / kotlin注解定义对比://java 注解@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public @interface Test {}//kotlin 注解@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD...原创 2020-01-09 17:17:39 · 13108 阅读 · 0 评论 -
kotlin lambda表达式简单示例
测试一class Test1 { @Test fun test1() { val list = mutableListOf(1, 2, 3) val max1 = maxTest(list) { a, b -> less(a, b) } //推荐写法 val max2 = maxTest(list, { a, b ->...原创 2020-01-02 14:36:33 · 249 阅读 · 0 评论 -
kotlin copy 与 Java clone 对比
参考:java对象clone()方法Java对象的复制三种方式kotlin copyclass Test3 { @Test fun test31() { val user = User("xq", 18) user.name = "第一次修改" println("=====================$user") ...原创 2020-01-02 14:32:43 · 6221 阅读 · 0 评论 -
kotlin 集合操作之 joinToString
public fun <T> Iterable<T>.joinToString( separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequ...原创 2020-01-02 14:23:08 · 11527 阅读 · 0 评论 -
kotlin ?. ?:
/** * Example local unit test, which will execute on the development machine (host). * * See [testing documentation](http://d.android.com/tools/testing). * * let / run / also / apply */cla...原创 2019-12-27 15:50:55 · 298 阅读 · 0 评论 -
kotlin: let / run / also / apply
package com.njp.coroutinesdemoimport org.junit.Testimport org.junit.Assert.*/** * Example local unit test, which will execute on the development machine (host). * * See [testing documentation...原创 2019-12-27 14:46:07 · 152 阅读 · 0 评论 -
kotlin 匿名内部类对比java
匿名内部类多个方法Single.just(1) .subscribe(new SingleObserver<Integer>() { @Override public void onSubscribe(Disposable d) { } @Override public void onSuccess(Integer integer) { } @O...原创 2019-10-23 19:13:09 · 425 阅读 · 0 评论 -
kotlin : 可变长参数数组:kotlin :(vararg a : T) / Java (T... arrays)
kotlin :@Testfun test1() { val temp = arrayOf("1", "2", "3") temp.forEach { println(it) }}//1//2//3//array前面加星号,变为可变长数组@Testfun test2() { val temp = arrayOf("1", "2"...原创 2019-10-18 11:18:04 · 7775 阅读 · 0 评论 -
kotlin : map / flatMap / flatten
//下面使用map跟flatMap达到同样的效果@Testfun test1() { val list = listOf(1, 2, 3, 4, 5) println("----------------------------") val list2 = list.map { it + 1 } list2.map { pr...原创 2019-10-18 11:17:13 · 951 阅读 · 0 评论 -
Kotlin 循环(for/foreach)与返回和跳跃(break/continue/return)
class ExampleUnitTest { @Test fun test1() { println("===========for in==============") for (i in 1..5) { println(i) } //1 //2 //3...原创 2019-10-17 18:39:16 · 3459 阅读 · 0 评论 -
rxjava 与 kotlin filter/groupBy/(flatten) 对比
filterrxjava :@Testpublic void test3() { ArrayList<Integer> integers = new ArrayList<>(); for (int i = 0; i < 6; i++) { integers.add(i); } Observable.fromIte...原创 2019-10-17 17:52:43 · 475 阅读 · 0 评论 -
Java文件转为kotlin文件
將Java文件转为kotlin文件:转换后:class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout...原创 2019-05-12 14:16:13 · 2417 阅读 · 0 评论 -
flutter与kotlin的简单对比
flutter(基于Dart语言的移动UI框架)dart的一个文件可以main方法与类同级别定义,但只能一个main方法。dart的main方法:void main() {...}//或main() {...} //void可省略。dart语句结束必须带分号dart2中new关键字已经成为一个可选项,可省略dart中set、get方法内只有一行语句可简写:String get ...原创 2019-05-14 16:40:26 · 4028 阅读 · 1 评论 -
kotlin类与Java类对比
java类示例:package com.xq.demopublic class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name;...原创 2019-05-14 16:38:57 · 374 阅读 · 0 评论 -
kotlin与java中简单使用dagger2对比
kotlin依赖implementation 'com.google.dagger:dagger:2.17'//kotlin使用kaptkapt 'com.google.dagger:dagger-compiler:2.17'class Person @Injectconstructor() { lateinit var name: String}@Componen...原创 2018-09-21 17:47:30 · 596 阅读 · 0 评论 -
kotlin与dagger2问题:Unresolved reference: DaggerMainComponent
kotlin项目集成dagger2时遇到:E:\Users\lenovo\MyDagger2\app\src\main\java\com\xq\mydagger2\MainActivity.ktError:(22, 9) Unresolved reference: DaggerMainComponentError:Execution failed for task ':app:compile...原创 2018-09-21 14:09:41 · 2784 阅读 · 0 评论 -
kotlin中var、val、const val区别
varvar定义的变量private,但带有public的set和get属性:var varObject: String = "varObject"const valconst val定义的常量 const val constObject: String = "constObject"valval定义的常量private,带有public的get方法 val normalO...原创 2019-05-12 16:52:07 · 8444 阅读 · 0 评论 -
kotlin中class、object、companion object区别示例
classobjectcompanion object原创 2019-05-12 17:26:57 · 6561 阅读 · 0 评论 -
kotlin修饰符、open与final
修饰符kotlin存在四种可见性修饰符,默认是public。public:默认修饰符,被其修饰的在任何位置都能访问private:表示只在这个类(以及它的所有成员)之内可以访问protected:在当前类及其子类内访问internal:在同一模块module内使用1.private、protected、public是和java中的一样的。不同的是java中默认是default修饰...原创 2019-05-12 22:35:16 · 3700 阅读 · 0 评论 -
New Gradle Sync is not supported due to containing Kotlin modules using an unsupported plugin versio
问题:New Gradle Sync is not supported due to containing Kotlin modules using an unsupported plugin versionThe Android Gradle plugin(1.3.31)supports only Kotlin Gradle plugin version 1.3.0 and higher...原创 2019-07-24 16:02:12 · 16646 阅读 · 3 评论 -
Android KTX 和 Kotlin android extension对比
参考:KTX 和 Kotlin android extension 都到底是个啥?Android KTXKTX 是被称为Android之光的 JakeWharton 写的Android KTX 是一组 Kotlin 扩展程序,属于 Android Jetpack 系列。它优化了供 Kotlin 使用的 Jetpack 和 Android 平台 API。Android KTX 旨在让您利...原创 2019-07-24 16:03:23 · 2127 阅读 · 0 评论 -
kotlin : SharedPreferences 与 委托
方式一:import android.content.Contextimport android.content.SharedPreferencesimport kotlin.properties.ReadWritePropertyimport kotlin.reflect.KPropertyclass MyPreference1<T>(private val con...原创 2019-07-24 19:00:49 · 543 阅读 · 0 评论 -
kotlin : json生成实体类并序列化
Android对象序列化主要有两种方式:Serializable和Parcelable。Serializable实际是使用Java的反射机制对对象做序列化和反序列化,其性能远低于使用Parcelable。但是使用Java写的Parcelable有点繁琐,需要我们实现Parcelable接口,手写很多模板代码。Java版的Parclable,需要重写wirteToParcel方法序列化对象,需...原创 2019-07-21 16:53:11 · 8206 阅读 · 1 评论 -
kotlin学习:val与var区别,by lazy与lateinit区别
Kotlin: Java 6 废土中的一线希望【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试Kotlin for android developers中文翻译Kotlin中var和val的区别Kotlin中有两个关键字定义变量,这两个关键字外形看着差别很小就只差了一个字母,但实际差别很大的。var是一个可变【变量】,这是一个可以通过重新分配来更改为另一个...原创 2018-09-20 11:59:55 · 4958 阅读 · 0 评论