首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师_JAVA集合(上)

2013-10-09 
黑马程序员_JAVA集合(上)----------- android培训、java培训、java学习型技术博客、期待与您交流! ----------

黑马程序员_JAVA集合(上)


----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

集合类

定义:为了方便对多个对象的操作,就对对象进行存储,集合就是其中的一种方式

集合和数组的不同之处:

1,数组是固定长度的,集合是可变长度的

2,数组可以储存基本数据类型和引用型数据类型,集合只能存储引用数据类型

3,数据存储的元素必然是统一个数据类型,集合存储的对象是不同数据类型

数据结构:

数据结构就是容器中存储数据的方式,对于集合容器,有很多种。因为每一个容器的自身特点不同,其实原理在于每个容器的内部数据结构不同。

集合容器在不断向上抽取过程中。出现了集合体系。

集合框架结构图:

黑马软件工程师_JAVA集合(上)


------------------------------------------

Collection接口

|--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。

|--Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性

提供的方法:

1,添加:

add(E a) 确保此collection包含指定的元素

 addAll(Collection<? extends E>c)将指定collection中的所有元素都添加到此collection中。

2,删除

clear()将集合中的元素全删除,即清空集合

remove(Object o)从此collection中移除指定元素的单个实例,如果存在的话,注意:删除成功,集合的长度会改变。

removeAll(Collection<?>c)移除此collection中那些也包含在指定collection中的所有元素 

3,判断

boolean  isEmpty()如果此collection不包含元素,则返回true

4,获取

boolean contains(obj) :集合中是否包含指定元素 。

boolean containsAll(Collection) :集合中是否包含指定的多个元素。

int size() 返回此collection中的元素数

5,取交集

boolean retainAll(Collection<?>c)仅保留此collection中那些也包含在指定collection的元素。集合和数组一样,里面存的都是地址。

6,获取集合中所有元素:

Iterator iterator()返回在此collection的元素上进行迭代的迭代器

7,将集合变成数组:

toArray()返回包含此collection中所有元素的数组

toArray(T[]a)返回包含此collection中所有元素的数组,返回数组的运行时类型与指定数组的运行时类型相同。

hashCode()返回此collection的哈希码值。

注意:集合里存储的是应用地址

--------------------------------------------------

Iterator接口

迭代器:

其实就是集合的取出元素的方式,就把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内部的元素,那么取出方式就被定义成了内部类,而每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都有共性内容,判断和取出,那么可以将这些共性抽取,那么这个内部类都符合一个规则,该规则是Iterator。

方法:

1,boolean hasNext():如果仍有元素可以迭代,则返回true.

2,next():返回迭代的下一个元素

3,void remove():从迭代器指向的collection中移除迭代器返回的最后一个元素

Iterator it = coll.iterator();//获取容器中的迭代器对象,至于这个对象是是什么不重要。这对象肯定符合一个规则Iterator接口。

import java.util.*;  public class TreesetTest {      public static void main(String[] args) {          TreeSet ts=new TreeSet(new stringlencomparator());  //传入比较器     ts.add("aa");       ts.add("cess");       ts.add("agweg");       ts.add("s");       Iterator it=ts.iterator();       while(it.hasNext())       {           System.out.println(it.next());       }      }  }  class  stringlencomparator implements Comparator  {      public int compare(Object o1,Object o2)  //比较器    {          String s1=(String)o1;          String s2=(String)o2;          /**  if(s1.length()>s2.length())            return 1;        if(s1.length()==s2.length())            return 0;        return -1;        */          int num=new Integer(s1.length()).compareTo(new Integer(s2.length())); //排序         if(num==0)              return s1.compareTo(s2);          return num;      }      }  

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

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

热点排行