黑马程序员——集合

---------------------- android培训java培训、期待与您交流! ----------------------

 

Java API

API的概念(Application Programming Interface)应用程序接口

J2SDK所提供的容器API位于java.util包内。

Collection接口:定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。

重复指的是:对象equals相等。

Set接口中的数据对象没有顺序且不可以重复。

List接口中的数据对象有顺序且可以重复。

Map接口定义了存储“键(key)值(value)映射对”的方法。

HashSet是实现Set接口类

LinkedList和ArrayList是实现List接口类

HashMap是实现Map接口类

Collection 存储的是对象

Collection collection = new ArrayList();
//多态,父类引用指向子类对象,利于扩展,不会因为改变子类对象而改变调用的方法。

子类接口继承父类接口,实现子类也就相当于实现父类。

Iterator接口

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

对象实现的方法:

boolean hasNext();//判断是否还有下一个,返回布尔值

object next();//取出下一个对象

void remove();

ArrayList基础是数组

LinkedList基础是链表

HashSet基础是Hash表

例:

import java.util.*;
public class Test{
 public static void main(String[] args){
  Collection c=new HashSet();
  c.add(new Name("f1","l1"));
  c.add(new Name("f2","l2"));
  c.add(new Name("f3","l3"));
  Iterator i = c.iterator();//调用hashSet里的iterator方法,返回对象,存储在i里
  while(i.hasNext()){
   //next()的返回值为Object类型,需要转换为相应类型
   Name n = (Name)i.next();
   System.out.println(n.getFirstName()+" ");//firstName封装了
  }
 }
}

HashSet类

Set s = new HashSet();//相同的元素不会被加入,前提是重写equals和HashCode方法

List常用算法

类java.util.Collections 提供了一些静态方法实现了基于List容器的一些常用算法。

Collections.shuffle();//随机排序

Collections.reverse();//逆序

Collections.sort();//排序(从低到高)

Comparable接口

根据什么确定容器中对象的“大小”顺序?

所有可以“排序”的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法

public int comparaTo(Object obj);

该方法: 返回0表示this==obj
 返回正数表示this>obj
   返回负数表示this<obj

实现了Comparable接口的类通过实现comparaTo方法从而确定该类对象的排序方式。

例:(重写compareTo方法)

public int compareTo(Object o){
 Member m = (Member)o;
 int i = score.compareTo(m.score);
 return i;
}

Map接口

Map m = new HashMap();

对象方法:

Object put(Object key,Object value);//相当于添加,以键值对的形式

 

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值