Collection/List/Set
来源:互联网 发布:linux vps speedtest 编辑:程序博客网 时间:2024/06/06 01:02
===========
输出是:
Collection 的总结
===========
它是一个接口,一个根接口,一个ROOT接口;
Collection层次结构中的根接口;Collection表示的是一组对象,那么那些对象就是Collection中的元素,或者是组成部分;
一些collection实现对它们可能包含的元素有所限制。例如某些实现不能为null;当存在那样情况的时候,就会抛出NullPointerException或者ClassCastException的错误。会出现这类异常的方法,在文档上面标有“可选”。
关于如何避免出现这类异常,那么就是要注意NULL值的使用,当需要引用该对象的方法时候,需要确保该对象已经被实例化。(当一些对象的值为NULL的时候,就会视为没有被实例化的。★)
当这个接口被实现之后,它就可以用来存放各类对象。这些对象在集合里面可以有排序的,可以有不是排序的,可以有重复的,也可以不能重复的;这些具体功能是通过它的子类,子接口来实现的。。
要是想用尽可能常规简单的方法的时候,可以选择Collection;
关于Collection接口的常用方法
添加元素的是 boolean add(Object element);
删除元素的是 boolean remove(Object element);
通过迭代器输出元素 Iterator
例子:
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Test_Collection {public static void main(String[] args) {String string = null;// 创建一个用于测试的,存放在集合里面的对象Collection<String> ccc = new ArrayList<String>();// 创建一个集合,存放的类型设定为String类型// 增加for (int i = 0; i < 10; i++) {ccc.add("" + i); // 使用Collection的方法add(),添加新的元素}// 查询;输出System.out.println("Collection集合中的元素有" + ccc);// 删除,输出ccc.remove("3");// 删除值为:3的元素System.out.println("删除之后,Collection集合中的元素有" + ccc);//isEmpty()System.out.println("ccc.isEmpty()的值为:"+ccc.isEmpty());//size()System.out.println("ccc.size()的值为:"+ccc.size());//迭代器,iteratorIterator<String> iter = ccc.iterator();System.out.println("检查是否有元素可以迭代:"+iter.hasNext());int a = 0;while (iter.hasNext()) {a++;System.out.println("第"+a+"个元素的值为:"+iter.next());//迭代器的next()方法}}}输出的结果:
Collection集合中的元素有[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
删除之后,Collection集合中的元素有[0, 1, 2, 4, 5, 6, 7, 8, 9]
ccc.isEmpty()的值为:false
ccc.size()的值为:9
检查是否有元素可以迭代:true
第1个元素的值为:0
第2个元素的值为:1
第3个元素的值为:2
第4个元素的值为:4
第5个元素的值为:5
第6个元素的值为:6
第7个元素的值为:7
第8个元素的值为:8
第9个元素的值为:9
删除之后,Collection集合中的元素有[0, 1, 2, 4, 5, 6, 7, 8, 9]
ccc.isEmpty()的值为:false
ccc.size()的值为:9
检查是否有元素可以迭代:true
第1个元素的值为:0
第2个元素的值为:1
第3个元素的值为:2
第4个元素的值为:4
第5个元素的值为:5
第6个元素的值为:6
第7个元素的值为:7
第8个元素的值为:8
第9个元素的值为:9
============
例子:
List
============
它是Collection接口的子接口;一个允许重复的、有序集合;
相对于collection接口而言,List接口具有其他的高效的功能;
在向List集合中插入新的数据的时候,会给每个元素索引。每个元素都有唯一的序号,方面用 于修改、查询、删除等,非常的高效;
对于ArrayList类的使用比较熟悉,相对于数组而言,觉得非常的高效;
例子:
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class Test_List {public static void main(String[] args) {String string = null;// 创建一个用于测试的,存放在集合里面的对象List<String> listStrings = new ArrayList<String>();for (int i = 0; i < 10; i++) {listStrings.add("" + i);}// 输出所有的元素System.out.println(listStrings);// 利用listIterator()方法,返回类型为ListIterator的元素,可以实现单个元素的输出;元素的序列号ListIterator<String> listIteratorstring = listStrings.listIterator();System.out.println("第一个元素的值为:" + listIteratorstring.next());System.out.println("第二个元素的值为:" + listIteratorstring.next());System.out.println("第三 个元素的值为:" + listIteratorstring.next());}}
输出是:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第一个元素的值为:0
第二个元素的值为:1
第三 个元素的值为:2
第一个元素的值为:0
第二个元素的值为:1
第三 个元素的值为:2
=============
Set
=============
它是Collection接口的子接口;它是不允许重复的一个集合;
取与其他的文档资料:
简述
实现
操作特性
成员要求
Set
成员不能重复
HashSet
外部无序地遍历成员。
成员可为任意Object子类的对象,但如果覆盖了equals方法,同时注意修改hashCode方法。
TreeSet
外部有序地遍历成员;
附加实现了SortedSet, 支持子集等要求顺序的操作
成员要求实现Comparable接口,或者使用Comparator构造TreeSet。成员一般为同一类型。
LinkedHashSet
外部按成员的插入顺序遍历成员
成员与HashSet成员类似
例子是:import java.util.HashSet;import java.util.Set;public class Test_Set {public static void main(String[] args) {Set<String> set = new HashSet<String>();//下面两个if判断,比较说面SET集合中,不允许元素重复的特性;if (set.add("0")) {System.out.println("Success!");}if (set.add("0")) {System.out.println("Failure!");}}}输出是:
Success!
- Collection List Set Map
- collection list set
- Collection/List/Set
- collection,list,set,map
- Collection、List、Set、Map
- set collection list
- java-Collection(List、Set)
- Collection,List,Set
- List,Set,Collection,Conllections
- Java.Collection.Set.List.Collection.ArrayList
- Collection,Set,List的区别
- Collection ,set,List区别.txt
- Collection List Set Map 区别
- Collection List Set Map 区别
- Java--collection--List,Set,Map
- Collection、Set、List的区别
- Collection List Set Map 区别
- 集合Collection <List,Set> 枚举
- 深入理解磁盘文件访问
- 再谈读书
- tcpflow命令使用总结
- 面试题——SSH优缺点
- 我大学剩下一年半的生活(五)——pythonchallenge之level4
- Collection/List/Set
- POJ 2028 When Can We Meet?(我的水题之路——边输入,边搜索)
- c++ int 转 string
- 赶集交友群发返回信息
- 第4章 编写正确的程序
- [观点]缺乏想象力的程序员
- 浅谈三层架构
- 软件产品细分之我见
- ACM小技巧