集合类
为什么会出现集合类
面向对象语言对事物的体现都是以对象的形式,所以为了方便对较多个对象的操作,就对对象进行存储,集合就是存储对象最经常使用的一种方式
数组和集合类同一时候容器,有何不同?
数组尽管也能够存储对象,可是长度不可变。集合的长度是可变的。数组中能够存储基本数据类型,集合仅仅能存储对象。
集合类的特点:
集合仅仅用于存储对象。集合长度是可变的,集合能够存储不同类型的对象。
为什么会出现这么多的容器呢?
由于每个容器对数据的存储方式都有不同
这个存储方式称之为:数据结构
共性方法:(Collection 的方法)
增、删、改、查。
方法摘要 | ||
---|---|---|
boolean |
add(E e) 确保此 collection 包括指定的元素(可选操作)。 |
|
boolean |
addAll(Collection<?
将指定 collection 中的全部元素都加入到此 collection 中(可选操作)。 |
|
void |
clear() 移除此 collection 中的全部元素(可选操作)。 |
|
boolean |
contains(Object o) 假设此 collection 包括指定的元素,则返回 true。 |
|
boolean |
containsAll(Collection<?> c) 假设此 collection 包括指定 collection 中的全部元素。则返回 true。 |
|
boolean |
equals(Object o) 比較此 collection 与指定对象是否相等。 |
|
int |
hashCode() 返回此 collection 的哈希码值。 |
|
boolean |
isEmpty() 假设此 collection 不包括元素,则返回 true。 |
|
Iterator<E> |
iterator() 返回在此 collection 的元素上进行迭代的迭代器。 |
|
boolean |
remove(Object o) 从此 collection 中移除指定元素的单个实例,假设存在的话(可选操作)。 |
|
boolean |
removeAll(Collection<?
移除此 collection 中那些也包括在指定 collection 中的全部元素(可选操作)。 |
|
boolean |
retainAll(Collection<?
仅保留此 collection 中那些也包括在指定 collection 的元素(可选操作)。 |
|
int |
size() 返回此 collection 中的元素数。 |
|
Object[] |
toArray() 返回包括此 collection 中全部元素的数组。 |
|
|
toArray(T[] a) 返回包括此 collection 中全部元素的数组;返回数组的执行时类型与指定数组的执行时类型同样。 |
add 方法的參数类型是Object 以便于接收随意类型的对象
集合中存储的都是对象的引用(地址)
import java.util.ArrayList; public class Main { public static void main(String[] args) {
//method_1();
method_2();
} public static void method_2() {
ArrayList al1 = new ArrayList();
ArrayList al2 = new ArrayList(); al1.add("abc01");
al1.add("abc02");
al1.add("abc03");
al1.add("abc04"); al2.add("abc01");
al2.add("abc02");
al2.add("abc05");
al2.add("abc06"); al1.removeAll(al2);//去除al1与al2的交集,保存在al1中 sop(al1);
sop(al2);
/*
* 打印结果:
* [abc03, abc04]
*
* [abc01, abc02, abc05, abc06]
*
* */
} public static void method_1() {
// 创建一个集合容器。使用Collection接口的子类ArrayList
ArrayList a1 = new ArrayList();
// 加入元素
a1.add("abc01");
a1.add("abc02");
a1.add("abc03");
a1.add("abc04"); // 获取个数 集合长度
System.out.println(a1.size());
// 打印集合
System.out.println(a1);
// 删除元素
a1.remove("abc03");
System.out.println(a1);
/*
* 打印结果 4 [abc01, abc02, abc03, abc04] [abc01, abc02, abc04]
*/
// a1.clear();//清空集合 // 推断某一元素是否在集合中
System.out.println(a1.contains("abc01"));
// 推断集合是否为空
System.out.println(a1.isEmpty()); } public static void sop(Object obj) {
System.out.println(obj);
}
}
===============================迭代器=============================
迭代器事实上就是集合用来取出元素的方式。
取出元素并能够对元素进行操作。
方法摘要 | |
---|---|
boolean |
hasNext() 假设仍有元素能够迭代。则返回 true。 |
E |
next() 返回迭代的下一个元素。 |
void |
remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。 |
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList al1 = new ArrayList(); al1.add("abc01");
al1.add("abc02");
al1.add("abc03");
al1.add("abc04");
// Iterator it = al1.iterator();//获取迭代器,用于取出集合中的元素
//
// //sop(it.next());//返回迭代的下一个元素。
//
// sop(it.hasNext());//假设仍有元素能够迭代。则返回 true
// while (it.hasNext())
// {
// sop(it.next());
// }
for (Iterator it = al1.iterator();it.hasNext();){
sop(it.next());
} }
public static void sop(Object obj) {
System.out.println(obj);
}
}