6.容器(container)

1、容器的概念

Java API所提供的一系列实例,用于在程序中存放对象;

java提供的容器位于java.util包;


Set,里面的对象没有顺序,不可重复;

List,里面的对象有顺序,可以重复;

Map,定义了存储"键(key)-值(value)映射对"的方法;

2、Collection接口定义的方法;

int size();

boolean isEmpty();

void clear();

boolean contains(Object element);

boolean add(Object element);

boolean remove(Object element);

boolean containsAll(Collection c);

boolean addAll(Collection c);

boolean removeAll(Collection c);

boolean retainAll(Collection c);

Object [] toArray();

容器对象在调用remove,contains等方法时需要比较对象是否相等,这就会涉及到对象类型的equals和hashCode方法,对于自定义的类型,需要重写类的equals方法,也需要重写hashCode方法;

3、Iterator接口

所有实现了Collection 接口的容器类都有一个iterator方法,用以返回一个实现了Iterator接口的对象;

Iterator对象称为迭代器,用以方便的实现对容器内元素的遍历操作;

Iterator定义了如下方法:

boolean hasNext();判断游标右边是否有元素

Object next();返回游标右边的元素并将游标移动到下一位置

void remove();删除游标左面的元素,在执行完next后该操作只能执行一次;

4、加强的For循环语句(JDK1.5以后)

int [] arr = {1,2,3,4,5};

for (int i:arr)

{ System.out.println(i);}

Collection c = new ArrayList();

c.add(new String("aaaa"));

c.add(new String("bbbb"));

c.add(new String("cccc"));

for (Object o:c)

{System.out.println(o);}

缺点:数组(不能方便的访问下标值;)集合(与使用Iterator相比,不能方便的删除集合中的内容;其实在内部也是调用Iterator)

除了简单遍历并读出内容外,不建议使用增强for;

5、Set接口是Collection的子接口(无顺序,不重复)

Set s = new HashSet();


实例2:

6、List接口是Collection的子接口(有顺序,可重复)

List容器类有ArrayList和LinkedList等

List常用算法;

void sort(List);对List容器内的元素排序

void shuffle(List);对List容器内的元素进行随机排序;

void reverse(List);对List容器内的元素进行逆序派讯;

void fill(list,Object);用一个特定的对象重写整个容器;

void copy(List dest,List src);将src容器内容拷贝到dest容器;

int binarySearch(List,Object);对于顺序的List容器,采用二分法查找特定对象;


比较对象的大小

所有可排序的类都实现了java.lang.Comparable接口,该接口只有一个方法:

public int compareTo(Object obj);

返回0 表示this==obj;

返回正数表示this>obj;

返回负数表示this<obj;

java.lang.Comparable

7、Map接口

Map接口用来存储键-值对;

Map接口的实现类有HashMap和TreeMap;

Map类中存储的键-值对通过键来标识,所以键值不能重复;


8、泛型(Generic)(JDK1.5之后)

List <String > c = new ArrayList <String>();

c.add("aaa");

c.add("bbb");

c.add("ccc");

for (inti i = 0;i<c.size();i++)

{

String s = c.get(i);

System.out.println(s);

}
9、自动打包和解包(Auto-boxing,unboxing)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值