Java集合与泛型(一)
1、如上图在集合中的两大接口为:Collection和Map。
2、Collection的子接口有三个分别为:List(列表),Queue(队列),Set。
这里只对最常用的做一下介绍。其中几个比较重要的几个实现类为:ArrayList、LinkedList、Vector、HashSet、HashMap、HashTable。
List是有顺序的序列,并且允许添加重复的对象。
3、ArrayList中常用的方法:
1)从它的命名就可以看出这个列表和数组有一定的关系,其实它的底层实现就是用数组实现的。区别就是数组长度不可变,而ArrayList长度是可变的。在效率上数组要比ArrayList快。
2)ArrayList的常用方法和操作可分为:添加、删除、修改、比较、遍历几种。如下面的代码实例中包括了这些基本操作:
创建的people类:
public class PeopleDemo { private String name; private boolean sex; public PeopleDemo(String name, boolean sex) { super(); this.name = name; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } @Override public String toString() { // TODO Auto-generated method stub String str; if(this.isSex()){ str = "男"; }else{ str = "女"; } return this.getName()+"性别"+str; } }
基本操作方法:
public class CollectionDemo { private static List list; private static PeopleDemo pd1; private static PeopleDemo pd2; private static PeopleDemo pd3; private static PeopleDemo pd4; private static PeopleDemo pd5; private static PeopleDemo[] pds1; private static PeopleDemo[] pds2; public static void init(){ list = new ArrayList(); pd1 = new PeopleDemo("张三", true); pd2 = new PeopleDemo("李四", true); pd3 = new PeopleDemo("小红", false); pd4 = new PeopleDemo("小毛", true); pd5 = new PeopleDemo("小刘", false); pds1 = new PeopleDemo[]{pd4,pd5}; pds2 = new PeopleDemo[]{pd2,pd3}; } public static void testAdd(){ list.add(pd1); list.add(0, pd2); list.addAll(Arrays.asList(pds1)); list.addAll(1, Arrays.asList(pds2)); testIterator2(list); } public static void main(String[] args) { // TODO Auto-generated method stub init(); testAdd(); testRemove(); testSet(); System.out.println(list.containsAll(Arrays.asList(pds1))); } public static void testIterator(List list){ int lenth = list.size(); Iterator iterator = list.iterator(); while(iterator.hasNext()){ PeopleDemo pd = (PeopleDemo) iterator.next(); System.out.println(pd.toString()); } } public static void testIterator2(List list){ for(Object o : list){ PeopleDemo pdd = (PeopleDemo) o; System.out.println(pdd.toString()); } System.out.println("------------------------------"); } public static void testRemove(){ list.remove(2); testIterator2(list); list.remove(pd2); testIterator2(list); list.removeAll(Arrays.asList(pds2)); testIterator2(list); } public static void testSet(){ list.set(0, pd4); testIterator2(list); } }
这里需要说的一点是,在遍历集合类对象时使用foreach语句要比for语句简便。