JAVA类之集合 important(一)

2014-11-24 09:26:35 · 作者: · 浏览: 2
合: 相当于一个容器,只存储对象,长度可以改变 ;
数组:也相当一个容器,存储对象、基本数据类型,长度不可变 ;
首先先写一下集合的概念:容纳不同种类的数据建立在未知的基础之上,即java要用有限种类的集合类来容纳无限种类的数据对象;
其实集合类就相当于一个容器;用于存放对象的,而且长度可变;
java中的集合类分为三个类:集(Set)、列表(List)、映射(Map);
集(Set):元素无序、不包含重复元素;
列表(List):有序、包含重复元素 通过角标操作;
映射(Map):待续。。。。。;
忘了写了重要的一点;java.util.Collection接口是最基本的集合接口,是描述集合Set和列表List类型的跟接口;

Set-------HashSet
Collection-----
LinkedList
List------
Vector------Stack
Map------Hashtable----Properties
Collection接口中的普遍性方法:

public boolean add(E e):向集合添加一个元素,加入成功返回true,否则返回false;、

public boolean remove(Object o):从元素中删除指定的元素,删除成功返回true,否则false;
public void clear():删除集合中的所有元素;

public boolean contains(Object o):判断集合是否包含指定元素;

public Object[] toArray() :返回包含当前集合中所有元素的数组。
public boolean isEmpty():判断集合是否为空;
public int size:返回集合中的元素个数;
/*
集合:就是一个容器。
1,用于存储对象的。
2,该容器的长度是可变的。
因为装对象的容器内部的数据结构不同,
这些容器很很多中,经过了不断的抽取,就形成了体系。
这个体系我们称之为集合框架。
当我们学习一个体系的时候,
先要明确该体系的基本功能。
演示Collection中的方法。
*/
import java.util.*;
class ArrayListDemo
{
public static void main(String[] args)
{
//1,通过Collection的子类对象,创建一个容器。其实集合对象中存放都是元素的引用(地址)
ArrayList al = new ArrayList();
//2,可以Collection的共性方法添加一些元素。
al.add("abc1");
al.add("abc2");
al.add("abc3");
al.add("abc4");
ArrayList al1 = new ArrayList();
al1.add("qq1");
al1.add("qq2");
al1.add("qq3");
//al1.add("abc1");
//添加一堆元素。
//al.addAll(al1);
//3,删除一个元素。
al.remove("abc3");
//4,交集。
//boolean b = al.retainAll(al1);
//System.out.println("b="+b);
//5,清空集合。
//al.clear();
//获取集合的长度。
//6,判断一个元素。其实用的还是equals方法。判断元素是否相同。
//boolean b = al.contains("abc22");
//System.out.println("b="+b);
//System.out.println(al.size());
iteratorDemo();
//System.out.println(al.toString());//[abc1, abc2, abc4]
/*
Iterator it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next()+"..");
}
al.retainAll(al1);
Iterator it1 = al.iterator();
while(it1.hasNext())
{
System.out.println(it1.next()+"--");
}
*/
}
public static void iteratorDemo()
{
ArrayList al = new ArrayList();
al.add("abc1");
al.add("abc2");
al.add("abc3");
al.add("abc4");
/*
什么是迭代器?
就是用于取出集合中元素的对象。
该对象因为每一个容器的数据结构不同,所以实现方式也不一样,而且
迭代器是容器中的内容,所以是通过内部类来实现,也即是进行了容器内部封装。
我们只要通过iterator()方法获取该对象即可操作容器中的元素。
迭代器就如同大型游戏机中的抓布娃娃的游戏机,迭代器就是该游戏机中的那个夹子!
*/
Iterator it = al.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
for(Iterator it1 = al.iterator(); it1.hasNext(); )
{
System.out.println(it1.next());
}
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());//.NoSuchElementException
}
}
/*
建立两个容器,A B
分别给容器中添加元素。
要求:获取A容器中的与B容器交集的元素,
将这些元素打印。
*/
首先讲一下列表List:
List集合有ArrayList、LinkList、Vector;
List方法:
void add(int index,E element):在索引号index后插入element对象。
boolean add(E e):将对象e插入到链表的最后;
E remove(int index):删除链表里指定索引号的元素;
boolean remove(Object o):删除链表里的第一个指定内容的元素;

E get(int index):得到链表里的指定索引号