Day11,来一场“集合”大会:ArrayList、List、LinkedList、Iterator以及Set的用法

-------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的代码还没有测试好,就不发上来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值