JAVA 集合体系结构 Ⅰ
主集合
【JAVA的JDK不提供父类接口的实现,而是提供更具体的子接口实现】
- Collection(单列集合的顶层接口)
- map:一种哈希表(双列集合)
- Iterator:迭代器,集合的专用遍历方式
Collection集合
创建Collection集合类的对象
- 多态的方式
- 具体的实现类—ArrayList
具体实例化:
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
Collection <String> c = new ArrayList<String>();
c.add("hello");
c.add("tajiaojiao");
c.add("dmz");
//输出集合对象
System.out.println(c);
}
}
常用方法:
①添加元素:
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
System.out.println(c.add("hello"));
//输出集合对象
System.out.println(c);
}
}
结果:
true
[hello]
Process finished with exit code 0
当添加重复元素时:
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
System.out.println(c.add("hello"));
System.out.println(c.add("dmz"));
System.out.println(c.add("dmz"));
//输出集合对象
System.out.println(c);
}
}
结果:
true
true
true
[hello, dmz, dmz]
Process finished with exit code 0
由此可知,Collection集合可添加重复的元素。
②删除指定元素
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
System.out.println(c.add("hello"));
System.out.println(c.add("dmz"));
System.out.println(c.add("dmz"));
//移除对象
System.out.println(c.remove("hello"));
//输出集合对象
System.out.println(c);
}
}
结果:
true
true
true
true
[dmz, dmz]
Process finished with exit code 0
③清空所有元素
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
System.out.println(c.add("hello"));
System.out.println(c.add("dmz"));
System.out.println(c.add("dmz"));
//清空集合中的元素
c.clear();
//输出集合对象
System.out.println(c);
}
}
结果:
true
true
true
[]
Process finished with exit code 0
④查找元素
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
System.out.println(c.add("hello"));
System.out.println(c.add("dmz"));
System.out.println(c.add("dmz"));
//判断集合中是否存在指定元素
System.out.println(c.contains("hello"));
//输出集合对象
System.out.println(c);
}
}
结果:
true
true
true
true
[hello, dmz, dmz]
Process finished with exit code 0
⑤判断集合是否为空
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("dmz");
c.add("dmz");
//判断集合是否为空
System.out.println(c.isEmpty());
//输出集合对象
System.out.println(c);
}
}
结果:
false
[hello, dmz, dmz]
Process finished with exit code 0
⑥输出集合长度
package dmz;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("dmz");
c.add("dmz");
//输出集合对象
System.out.println(c.size());
}
}
结果:
3
Process finished with exit code 0
子集合:
•List:元素可重复
①ArrayList(类)
②LinkedList(类)
③…
•Set:元素不可重复
①HashSet(类)
②TreeSet(类)
③…
Map集合
•HashMap(类)
Collection集合的遍历——迭代器Iterator
具体方法
①返回下一个元素
package dmz;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("dmz");
c.add("tajiaojiao");
//返回集合中元素的迭代器
Iterator<String> it = c.iterator();
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
}
}
结果:
hello
dmz
tajiaojiao
Process finished with exit code 0
②具有更多元素则返回true
package dmz;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("dmz");
c.add("tajiaojiao");
//返回集合中元素的迭代器
Iterator<String> it = c.iterator();
if (it.hasNext()){
System.out.println(it.next());
}
if (it.hasNext()){
System.out.println(it.next());
}
if (it.hasNext()){
System.out.println(it.next());
}
if (it.hasNext()){
System.out.println(it.next());
}
}
}
结果:
hello
dmz
tajiaojiao
Process finished with exit code 0
用while循环改进判断
package dmz;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {
public static void main(String[] args) {
//创建集合对象
Collection <String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("dmz");
c.add("tajiaojiao");
//返回集合中元素的迭代器
Iterator<String> it = c.iterator();
while (it.hasNext()){
System.out.println(it.next());
// 为了日后操作方便,一般这样:
// String s = it.next();
// System.out.println(s);
}
}
}
结果:
hello
dmz
tajiaojiao
Process finished with exit code 0