Java List: 列表是什么数据类型,怎么用?
Java List: 列表是什么数据类型,怎么用?偶然发现容器类的结构在很多代码中越用越多。故,有意识开始整理。方法上觉得:用Java来了解和运用。然后用C++来实现和掌握最为便捷有效。1 List array vector set 都有些相似的类型,区别呢?list是链表;链接一个个,比set允许重复。比数组来说有同样类似查找功能。比起vector 应用要灵活许多,允许不同方式索引。注意1...
Java List: 列表是什么数据类型,怎么用?
偶然发现容器类的结构在很多代码中越用越多。故,有意识开始整理。方法上觉得:用Java来了解和运用。然后用C++来实现和掌握最为便捷有效。
1 List array vector set 都有些相似的类型,区别呢?
/ list是链表;链接一个个,比set允许重复。比数组来说有同样类似查找功能。比起vector 应用要灵活许多,允许不同方式索引。注意1 其查找操作 线性地,比较耗时;注意2 其嵌套List后,那些equal等操作以及依赖equal的contains等操作可能会不好使了。
2 用法之前分清楚java 的两种list实现类型?
列表实现有两种,ArrayList 和 LinkedList; 比较像C里数组(因为源头上C是更早期的基础语言,所以常用于比较,但不意味着你需要先学好C再学Java)的为ArrayList,因为是成块分配的内存,故长于查改操作,短于增加、删除操作; 比较像C里Link链表的是LinkedList,因为是索引分配,实际内存中存储元素是分散的,所以优劣正好相反。
故,虽然查找、修改、增加和删除都是List需要的操作,但是看业务类型,查找频繁而增删不频繁的(如银行卡号、用户号码)用ArrayList,而增加删除频繁、查改不频繁的(如银行账户金额、库存量等)用LinkedList;
3 用法: 两种实现仅仅是新建略有差别,其它增删改查在编程上无区别
操作 | Code |
---|---|
新建: | List fruit = new ArrayList<>(); |
newLinkedList<>(); | |
增 | fruit.add(“Apple”); |
fruit.add(“Pear”); | |
删 | fruit.remove(0); // 按照索引删、或者按照内容删除; |
fruit.remove(“Apple”); | |
改 | fruit.set(1,”Banana”); |
查 | fruit.contains(“Pear”); |
Fruit.containsAll(fruit2); // Listfruit2 = new ArrayList<>(); fruit2.add(“Banana”); fruit2.add(“Apple”); |
##4 常用技巧:链表遍历(三种,超级for,for size遍历 以及 迭代器方法)
方法一: 超级for循环遍历
for(Object attribute : list) {
System.out.println(attribute);
方法二:
for –size 遍历
for(int i = 0 ; i < list.size() ; i++) { system.out.println(list.get(i));
}
方法三:
用迭代器迭代
Iterator it = list.iterator();
while(it.hasNext()) {
System.ou.println(it.next);
}
总结
简单的List介绍完毕,实用而并不难。可以作为容器类基础。承接vector和stack 矢量和栈稍微复杂些,进阶的有按序的Linked或hash等等比较算法,加速的。复杂结构的后面还有字典Map(包括java常用而很好用的hashmap,treeMap)等。
更多推荐
所有评论(0)