-------1、ArrayList-------------------------------
package demo;
import java.util.ArrayList;import java.util.Collection;
import java.util.Iterator;
public class TestArrayList {
public static void main(String[] args) {
Collection<User> col=new ArrayList<>();
col.add(new User("lili",102,"123"));
col.add(new User("tom",103,"1234"));//在使用泛型添加数据时,要使用new来添加对象
Collection col2=new ArrayList();
col2.add("lili");
col2.addAll(col);
Collection col3=new ArrayList();
col3.add("tom");
col3.add("limei");
System.out.println(col);
boolean a=col.contains("lucky");
boolean c=col.contains("tom");
boolean b=col.contains(col3);
System.out.println(a+" "+c+" "+b);//false true false
System.out.println("姓名");
/**
* 加强for循环 针对对象循环
*/
for(Object str:col) {
System.out.println(str);
}
System.out.println("---------------------");
Object[] arr=col2.toArray();//将集合转化为数组
for(Object o:arr) {
System.out.println(o);
}
System.out.println("---------------------");
Collection collect=new ArrayList();
boolean f=col.contains(new User("tom",103,"1234"));
System.out.println(f);//在这里必须重写而且equals方法才能进行比较
/*Collection col4=new ArrayList();
col4=null;
System.out.println(col4.isEmpty());*/
//在这里空值不能调用方法
Iterator ites=col.iterator();//使用col创建迭代器循环输出
while(ites.hasNext()) {
System.out.println(ites.next());
}
}
}
-------2、List----------------------------------------
package demo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class TestList {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("jim");
list.add("tom");
list.add("jack");
list.add("poly");
list.add("lintao");
list.add(2, "陈洁");
/**
* 遍历输出List的各种方法
*/
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
System.out.println("-------------------");
for(String r:list) {
System.out.println(r);
}
System.out.println("------------------");
Iterator ites=list.iterator();
while(ites.hasNext()) {
System.out.println(ites.next());
}
System.out.println("-------------------");
ListIterator lis=list.listIterator();
while(lis.hasNext()) {
System.out.println(lis.next());
}
System.out.println("--------------------");
while(lis.hasPrevious()) {//在这里因为上面list迭代器已经指向了最后一个
System.out.println(lis.previous());//所以在这里可以向上寻找输出迭代器
}
System.out.println("----------------------");
List<String> subList = list.subList(1, 2);// 返回列表中指定的 fromIndex(包括 )
//和 toIndex(不包括)之间的部分视图。
System.out.println(subList.get(0));//subList中index为0的是tom
list.add(2, "姚明");
for(String s :list) {
System.out.println(s);
}
}
}
--------3、LinkedList--------------------------------------
package demo;
import java.util.LinkedList;
import java.util.ListIterator;
public class TestLinkedList {
public static void main(String[] args) {
LinkedList<Integer> a=new LinkedList<>();
a.add(12);
a.add(10);
a.add(5);
a.add(8);
for(int i=0;i<a.size();i++) {
System.out.println(a.get(i));
}
System.out.println("-----------------------");
a.addFirst(9);
a.addLast(3);
ListIterator listIterator=a.listIterator();
while(listIterator.hasNext()) {
System.out.println(listIterator.next());
}
System.out.println("***************************");
a.add(3, 6);
for(Integer i:a) {
System.out.println(i);
}
System.out.println("------------------------------");
System.out.println(a.indexOf(7));// 返回此列表中首次出现的指定元素的索引,
//如果此列表中不包含该元素,则返回 -1。
System.out.println("*********************************");
System.out.println(a.peek());
System.out.println("---------------------------------");
a.pollLast();
for(Integer i:a) {
System.out.println(i);
}
System.out.println(a.size());
System.out.println("------------------------------");
}
}
-------4、Iterator---------------------------------------
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class TestIterator {
public static void main(String[] args) {
Collection<User> cols=new ArrayList<>();
cols.add(new User("jim", 101, "123"));
cols.add(new User("jack", 102, "1234"));
cols.add(new User("lili", 104, "1234"));
cols.add(new User("lucy", 103, "123"));
User u=new User("lili", 104, "1234");
Iterator<User> ites=cols.iterator();
while(ites.hasNext()) {
User user=ites.next();//ites.remove必须删除的是ites.next(),否则会报错
if(user.equals(u)) {
ites.remove();
System.out.println("************");
}
System.out.println(user);
}
//在这里需要重写User类里面的equals方法,才能成功删除
System.out.println(cols.size());
System.out.println(cols);
System.out.println(u.getName());
}
}
------5、Set----------------------------
package demo;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestSet {
public static void main(String[] args) {
Set<String> sets = new HashSet<>();
sets.add("jim");
sets.add("tom");
sets.add("jack");
sets.add("poly");
sets.add("lintao");
sets.add("jim");
Iterator<String> it=sets.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}//set集合不允许有重复元素
System.out.println("-------------------");
Set<User> u=new HashSet<>();
u.add(new User("zhangming"));
u.add(new User("tom"));
u.add(new User("tom"));
//u.remove("tom");???这里删除不了
for(User b:u) {
System.out.println(b);
}
System.out.println("----------------------");
}
}
其实,这几种集合用法都是相似的,只是某些方法不同或者多了少了一些方法。我这里都是用泛型来做。推荐看API文档
另外TreeSet的代码还没有测试好,就不发上来了。