首页 /  技术专区  /  Java 宽屏模式 >

集合框架

1.  为什么使用集合框架

如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,可以使用Java集合框架。

2.  Java集合框架包含的内容

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。

1.png

Collection 接口存储一组不唯一,无序的对象。

List 接口存储一组不唯一,有序(插入顺序)的对象。

Set 接口存储一组唯一,无序的对象。

Map接口存储一组键值对象,提供keyvalue的映射。

3.  List接口的实现类

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。

2.png

LinkedList采用链表存储方式。插入、删除元素时效率比较高。

3.png

4.  ArrayList集合类

List接口常用方法:

4.png

5.  LinkedList集合类

LinkedList的特殊方法:

5.png

6.  Set接口

Set接口存储一组唯一,无序的对象。

HashSetSet接口常用的实现类。

Set中存放对象的引用。

7.  Map接口

Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。

最常用的实现类是HashMap

Map接口常用方法:

6.png

8.  迭代器Iterator

如何遍历Map集合呢?

方法1:通过迭代器Iterator实现遍历

获取Iterator Collection 接口的iterator()方法

Iterator的方法

boolean hasNext(): 判断是否存在另一个可访问的元素

Object next(): 返回要访问的下一个元素

程序如下:

Set keys = dogMap.keySet();

Iterator it = key.iterator();

While(it.hasNext()){

String key = (String)it.next();

Dog dog = (Dog)dogMap.get(key);

System.out.println(key + “\t” + dog.getStrain());

}


 

方法2:增强for循环

for (元素类型t 元素变量x :数组或集合对象) {

引用了xjava语句

}

9.  泛型集合

泛型是jdk5才引进的,泛型其实指得就是参数化类型,使得代码可以适应多种类型。像容器,List< T >,大量使用了泛型,它的主要目的之一就是用来指定容器要持有什么类型的对象。

 //创建ArrayList集合对象并存储狗狗

 List <Dog> dogs = new ArrayList<Dog>();

 dogs.add(dog1);

 

 //dogs.add("hello");

 //  显示第三个元素的信息

 Dog dog = dogs.get(2);

 //使用foreach遍历dogs对象

 for(Dog dog:dogs){

        

 }

10. 泛型接口

泛型接口和泛型类其实并没有什么太大区别,都是持有对象。

public interface Tuple<T>{

T next();

}

11. 泛型方法

泛型方法有一个基本原则,尽量使用泛型方法而不是泛型类。只要能够用泛型方法达到需求,就应该只用泛型方法,这样能使得代码更加清晰。 
         泛型方法的定义:泛型参数列表置于返回值前,例如 public < T> void f(T t

public <T> void f(T t){

System.out.println(t.getClass().getSimpleName()); 

}

12. Collections算法类

java集合框架针对不同数据结构算法的实现都保存在工具类中。

Collections类定义了一系列用于操作集合的静态方法。


Collections和Collection不同,前者是集合的操作类,后者是集合接口。

Collections类常用方法:

    sort(); 排序

    binarySearch();查找,注:在进行查找之前要进行排序

    max()\min();查询最大\最小值

    reverse();反转元素顺序



上一篇: 异常

头像
0/200
图片验证码