您的位置:首页 > 编程语言 > Java开发

Java 容器学习

2015-11-29 22:52 597 查看
#容器类

类似C++的STL。

Set : 集合,没有顺序,并且不可以重复。

List : 有顺序,可重复。

Map : 一对键值映射。

如图四个接口,实现接口的有arrayList,LinkedList类等。



HashSet LinkedList 等都是实现Collection接口的容器,数组也是一种容器。

Collection c=new ArrayList( ) ; // 超类引用子类

c.add("hello"); // 只能添加object,分配在堆上的变量。不能添加基础类型。

c.add( new Integer(100) ); // object 对象

c.remove("hello"); // 成功返回true

// 容器内对象对比时需重写equals或hashcode函数

// equals 来对比普通类,hashcode 对比键值对中的键 以提高对比效率。

/**********************

Iterator 接口

实现某个容器的迭代器,来遍历容器里的元素。



Collection c = new HashSert( );

Iterator i=c.iterator( );

for(; i.hasNext( ) ; ){

Name name =(Name) i.next( );

i.remove( );

// 此时不能用 c.remove( );

// 迭代器锁定了目标元素。其他代码不能访问

}

/***********

int[ ] arr= new int [500];

for( int i : arr)

{

遍历数组元素;

}

还可以遍历容器,如下图



/****************

Collections 类提供很多静态方法,来对List进行运算。



这里排序的算法需要元素类实现compareTo 接口,来确定该类对象的排序方式。

/*****************



此处K,V为泛型,API中有尖括号即支持泛型。 可以理解为为各种类型都重载了一次。 大概使用方法如下

即在类型后加上一对尖括号,并写入类型名。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: