集合,这个类在VB中也有见过,就是可以把一些对象添加到集合中。然后删除或者清空什么的。
看一个例子,进行集合的建立和遍历显示:
package sunsoft.testideas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Ex_Collection {
static void TryCollection(){
Collection<String> jCollection=new ArrayList<String>();
jCollection.add("apple");
jCollection.add("mj");
jCollection.add("we are the world");
Iterator<String> nIt=jCollection.iterator();
for (;nIt.hasNext();) {
String ktemp=(String)nIt.next();
T.O(ktemp);
}
}
}
这里,Collection<String> jCollection=new ArrayList<String>(); 表示创建一个字符串类型的集合
这里,Collection是接口,ArrayList是具体的实现类。
集合除了创建后的add方法外,还有一个很有用的方法addAll。这个方法可以将另一个集合中的所有数据加入到自己的集合中。
例如:
package sunsoft.testideas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Ex_Collection {
static void TryCollection(){
Collection<String> jCollection=new ArrayList<String>();
Collection<String> myStudent=new ArrayList<String>();
jCollection.add("apple");
jCollection.add("mj");
jCollection.add("we are the world");
myStudent.addAll(jCollection);
myStudent.add("我爱女孩!");
Iterator<String> nIt=myStudent.iterator();
for (;nIt.hasNext();) {
String ktemp=(String)nIt.next();
Easy.ShowL(ktemp);
}
}
}
在这里面的代码中,你可以看到一个东西,是 Iterator,这个叫做 迭代器。这个东西用来把集合中的项目遍历出来。
另外一个Collection对象的方法是:removeAll(Collection del);
例如:
k.removeAll(orig); //这个的功能是,将k集合中,与orig集合内容相同的项全部删除。
例如:k中有“编程”,“赛车”,“摄影”,“脱衣舞”,“美元”,“性爱”
orig中有“赛车”,“脱衣舞”
则,在执行完:k.removeAll(orig); 后
k中,仅仅剩下“编程”,“摄影”,“性爱”
还有一个常用的方法,是isEmpty().它会返回一个逻辑型变量。
返回的true表示集合不为空,返回的false,表示集合为空。
几个常见的集合类:
List是接口
ArrayList是List接口的一个实现
采用的数组结构保存对象。这种数组结构的优点是可以快速的随机访问,但是插入和删除指定索引位置的元素的速度会较慢。
ArrayList的使用,前面有所介绍,可以参见前面的内容。
下面,由于ArrayList的插入和删除不高效,这里介绍LinkedList。这个类是用链表实现的List。根据数据结构与算法的知识,链表中插入元素和删除元素很方便,高速。毕竟只是改指针。但是,由于这个是非线性的,所以链表随机访问对象的速度很慢。
它有一些方法:
addFirst:将指定东西加入到链表开头
addLast:将制定东西加入到链表结尾
getFirst:获取链表开头的元素
getLast:获取链表结尾的元素
removeFirst:删除链表开头的元素
removeLast:删除链表结尾的元素
一个小例子:
static void LinkedListTry(){
LinkedList<String> nLst=new LinkedList<>();
nLst.add("there comes a time");
nLst.add("when we heed a certain call");
nLst.add("when the world must lend a helping hand");
System.out.println("第一个元素:"+nLst.getFirst());
System.out.println("最后一个元素:"+nLst.getLast());
System.out.println("下面删除第一个");
nLst.removeFirst();
System.out.println("现在第一个元素:"+nLst.getFirst());
System.out.println("下面删除最后一个");
nLst.removeLast();
System.out.println("现在最后一个元素:"+nLst.getLast());
}
其实,LinkedList还有peek,clone,clear,pop,poll等方法,作用都可以大家自己探索。