android集合,集合的应用

在Android中 集合怎么声明

你写的第一个是直接实例化,第二个是接口具体实例化。

赤坎网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

List是一个接口,而ListArray是一个类。

ListArray继承并实现了List。

所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。

List list; //正确 list=null;

List list=new List(); // 是错误的用法

List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。

用 Kotlin 写 Android 3—数组,集合与字符串

相比 Java,在 Kotlin 里数组的写法变化还是挺大的,用 xx-Array 的命名规则来声明一个数组类型,并用 xx-ArrayOf 来进行初始化。

例如整型数组,IntArray 类型,IntArrayOf 是初始化方法,以此类推其他基础类型也差不多。

要注意的是,String 类型的数组声明有所不同,ArrayString 表示一个字符串数组,arrayOf 是初始化方法。由此也可以得出,像我们自己定义的一些模型类要是想声明一个数组应该是和 String 一个用法。

虽说数组的声明写法上有差别,但在数组元素的基本使用上可以说相差不大。

Kotlin 里的容器类分三大类,并且每个类又分为不可修改和可修改两种,这就好比 val 和 var 的变量声明一样。默认情况是不可修改的,要想对容器类进行类似增,删,改的操作就要声明可修改,即要加上前缀 Mutable-。和数组初始化方法类似,容器类的初始化方法也是 xx-Of 系列,xx 表示具体容器类型,例如如果是可变集合初始化那就是 MutableSetOf。

遍历

三者都能进行 for-in 循环,

三者都能进行迭代器循环遍历,

除此之外三者还能进行 forEach 循环遍历,不过对 Map 来说有 API 24 的版本限制,其次虽说写法简单,但可能实用性不那么强,毕竟实际开发中不会说仅做个简单遍历吧。所以我觉得记住上面两种较通用的写法就够了。

字符串的常规方法没有太大的改变,我们依然可以用 indexOf, subString, replace, split 等方法。对于类型转换,Kotlin 中的字符串提供了 to-xxx 系列的方法,例如字符串转整型 toInt,字符串转浮点型 toFloat 等。

另外一个就是 Kotlin 里用 ${} 替换了 Java 中的 String.format 来用于字符串模板效果。

Android中几种常用的集合类

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。(这段话是抄来的)

咳咳,大体的意思的就是Collection是所有List的国际标准了,那我们可以看一下Collection接口需要记一下的方法。

这个方法是用来遍历Collection中所有的元素的,用法如下:

这个可以遍历出一个Collection中所有的元素。

List接口是有序的Collection接口的实现。此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,类似于Java的数组。

顺序是 List 重要的特性;它可保证元素按照规定的顺序排列。

List 为 Collection 添加了大量方法,以便我们在 List 中部插入和删除元素(只推荐对 LinkedList 这样做)。List 也会生成一个 ListIterator(列表反复器),利用它可在一个列表里朝两个方向遍历,同时插入和删除位于列表中部的元素(同样地,只建议对 LinkedList 这样做)

ArrayList 由一个数组后推得到的 List。作为一个常规用途的对象容器使用,用于替换原先的 Vector。允许我们快速访问元素,但在从列表中部插入和删除元素时,速度却嫌稍慢。一般只应该用 ListIterator 对一个 ArrayList 进行向前和向后遍历,不要用它删除和插入元素;与 LinkedList 相比,它的效率要低许多

LinkedList 提供优化的顺序访问性能,同时可以高效率地在列表中部进行插入和删除操作。但在进行随机访问时,速度却相当慢,此时应换用 ArrayList。也提供了 addFirst(),addLast(),getFirst(),getLast(),removeFirst()以及 removeLast() (未在任何接口或基础类中定义),以便将其作为一个规格、队列以及一个双向队列使用

Vector和ArrayList

Android 中传递对象的集合

方法1:

直接让User类继承Serializable或者Parcelable接口即可,Intent只可以传输序列化的对象

//User类

public class User implements Serializable{

private String name;

..........

}

//直接加入intent

ListUser list = new ArrayListUser();

Intent intent = new Intent();

intent.putExtra("list",list);

方法2:

把list集合转为字符串表示,可以使用json格式,直接用Gson框架转换即可,再到另一个activity转换回来

ListUser list = new ArrayListUser();

Type type = new TypeTokenArrayListUser()(){}.getType();

String json = new Gson().toJson(list,type);

intent.putExtra("list",json);

//转换回ListUser

String json = getIntent.getStringExtra("list");

Type type = new TypeTokenArrayListUser()(){}.getType();

ListUser list = new Gson().fromJson(json,type);


新闻标题:android集合,集合的应用
网站URL:http://csdahua.cn/article/dscihpd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流