集合定义

 

.集合框架 :java

1.Java集合框架的三大接口:数组

Collection全部集合类的根接口。数据结构

Map映射接口,存放键值对。框架

Iterator遍历集合的迭代接口。spa

2.Java的集合框架是由不少接口、抽象类、具体类组成的,都位于java.util包中。对象

.Collection接口排序

1.Collection<E>接口继承

  Collection意即集合,是全部集合类的根接口,同时Collection接口是一个泛型接口。索引

2.方法:add(E): 添加对象;接口

        Iterator<E> iterator():生成迭代器对象,进而能够迭代集合中的元素。

        int size();获取集合中元素数量。

4.List 有序的集合,元素有序存入。

5.Set无重复的集合,即存入的元素不重复。

6.Queue队列,jdk1.5版本新增接口,Queue实现了“先进先出”(FIFO)的存储结构。QueueCollection的子接口,具备全部集合基本操做,除此以外,Queue还提供了一些新的插入、提取、查询等方法。

.Map接口:

Map接口

   Map中保存的是键值对Map<key,Value> Key值不容许重复,若是重复,则覆盖。

②经常使用方法

    put(K key,V value)该方法能够将keyvalue存到Map对象

    get(Object key)该方法能够根据key值返回对应的value

    size()返回Map对象中键值对的数量。

HashMap  较经常使用的Map集合类。 key值的hashCodeequals保证元素惟一性。

TreeMap  不只能够保证key不重复,还能够对value数据进行排序。

HashTable  jdk1.0中定义的类,实现同步。

4、List

1.继承了Collection接口,而且扩展出属于本身的方法;

2.List 集合中的元素都是与索引有关系的,所以List集合扩展的方法都是与索引有关系的。

3.add(int index,E)……添加元素在所对应的索引位置 。

4.List 是个接口,有三个实现的类:

ArrayList:为数组列表,数据采用数组的方式存储,使用连续内存存储。ArrayListJava语言中可变长度数组的实现。

LinkedList:称为链表,该集合类型实现了“链表”的数据结构。值得一提的是,LinkedList不只实现了List接口,还实现了Queue接口,能够说链表同时也能够做为一个队列对象使用。使用方式与ArrayList相似。

VectorVectorJDK1.0版本中的集合类,后来修改成实现了List接口。Vector的功能几乎均可以被ArrayList替代,主要区别是Vector是同步的,而ArrayList不是同步的。

5.ArrayList的经常使用方法:

add(Object  o);->集合中添加数据

remove(Object o)->删除集合中的数据

add(int  index, Object element)->给集合中某个索引位置添加一个数据

get(int index)->获取集合中某个位置的信息

6.LinkedList是以链表的方式存放的,每一个节点上存放的是数据信息。

①经常使用方法:

add(E element)—向链表末尾添加一个新的节点,该节点中的数据是参数element指定的对象。

add(int index, E element)—向链表的指定位置添加一个新的节点,该节点中的数据是参数element指定的对象。           

②扩展的方法:

addFirst(E element)—向链表的头添加新节点,该节点中的数据是参数element指定的对象。

addLast(E element)—向链表的末尾添加新节点,该节点中的数据是参数element指定的对象。

7.ArrayListLinkedList的遍历

for循环遍历:经过索引值获取所对应的数据信息

②加强for循环的遍历:也是经过迭代器的方法获取信息

③迭代器遍历(Iterator):经过集合返回迭代器。

例:for循环遍历

public class GenericsList {

public static void main(String[] args) {

//建立用户对象

User user=new User("张三");

User user1=new User("李四");

//建立集合对象,存放用户对象

List<User> userList=new ArrayList<User>();                                         

 

userList.add(user);

userList.add(user1);

for(int i=0;i<userList.size();i++){

   System.out.println(userList.get(i));

}

}

}

加强for循环:

public class GenericsList {

  public static void main(String[] args) {

//建立用户对象

User user=new User("张三");

User user1=new User("李四");

//建立集合对象,存放用户对象

List<User> userList=new LinkedList<User>();

userList.add(user);

userList.add(user1);

for(User userInfo:userList){

System.out.println(userInfo);

}

  }

}

5、Set接口

1.Set接口继承了Collection接口。Set中所存储的元素是不重复的,可是是无序的。

2.Set接口有两个实现类:

HashSet底层是哈希码值,基于HashMap实现的。HashSet类中的元素不能重复,即彼此调用equals方法比较,都返回false

TreeSet元素不重复,而且元素实现了排序。能够给Set集合中的元素进行指定方式的排序。存储的对象必须实现Comparable接口。

HashSet的经常使用方法:

   add(E o)将指定的元素添加到set

TreeSet的经常使用方法:

   add(E o):将指定的元素添加到 set(若是还没有存在于该set中)。

   first():返回已排序set中当前的第一个(最小)元素。

   last():返回已排序set中当前的最后一个(最大)元素。

HashSetTreeSet的遍历:加强for循环和迭代器遍历。

例:加强for循环遍历

public class SetExemple {

 public static void main(String[]

  args) {

   User user1=new User(“王辉");

   User user2=new User("qw");

   Set<User> userSet=new HashSet<User>();

   Set<User> userSet=new TreeSet<User>();

   userSet.add(user1);

   userSet.add(user2);

  //加强for循环遍历

  for(User user:userSet ){

  System.out.println(

  user.getUserName());

  }

 }

}

6、Map集合的经常使用实现类

1.HashMap:元素的key值不能重复,即彼此调用equals方法,返回为false。排列顺序是不固定的。

2.TreeMap:全部的元素都保持着某种固定的顺序,若是须要获得一个有序的Map就应该使用TreeMapkey值所在类必须实现Comparable接口。

3.HashMapHashMap的经常使用方法

     put<key,value>>存放对象

     get(key);     >获取key所对应的数据。

     keySet()      返回此映射中所包含的键的 set 视图。

4.TreeMap适用于按天然顺序或自定义顺序遍历键(key)

5.TreeMap根据key值排序,key值须要实现Comparable接口,实现compareTo方法。TreeMap根据compareTo的逻辑,对key进行排序。

例:根据字符串的字典顺序。

User user1=new User("王敏");

User user2=new User("王辉");

TreeMap<String,User> tree=new TreeMap<String,User>();

tree.put(001", user1);

tree.put(002", user2);

相关文章
相关标签/搜索