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集合,集合的应用
文章网址:http://azwzsj.com/article/dscihpd.html