===========
输出是:
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());
//迭代器,iterator
Iterator<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!