黑马程序员_java_集合

集合相对于数组的一个好处就是就是可以存储任意类型的数据。

 

java的集合来自己两个部分,一个是来自collection接口。另一个来自map接口。collection下面有list和set。
list 存储一组唯一,无序的对象 。常用的类有ArrayList和LinkedList.
set存储一组不唯一,有序的对象。下面常用的类有HashSet.
map存储一组成对的键,提供Key到value的映射。key不要求有序,但不允许重复,value也可以是无序的,允许重复。下面常用的类用HashMap和TreeMap.

 

java.util.Conllection接口中的方法

Itorator<W> iteratorA() 返回一个用于访问集合中每个元素的迭代器
int size() 返回当前存储在集合中的元素的个数
boolean isEmpty() 如果集合中没有元素,则返回true
boolean contains(Object obj) 如果集合中包含了一个与obj相同的对象,则返回true
boolean contains(Collection<?> other) 如果这个集合包含other集合中的所有元素,返回true
boolean add(Object element) 将一个元素添加到集合中,成功返回true
boolean remove(Object obj) 删除集合中的一个对象,成功返回true
void clear 清空集合
boolean retainAll(Collection<?> other) 删除所有与集合other不相同的元素,如果这个调用改变了集合,返回true
Object[] toArray() 返回集合的对象数组

java.util.Iterator<E>
boolean hasNext() 如果存在可访问的元素,返回true
E next()返回将要返回的对象,如果集合已经达到了末尾,将抛出一个NoSuchElementException。
void remove()删除上次访问的对象。必须紧跟在访问一个元素之后执行。

 


ArrayList

1.       ArrayList 能够随着对象的增减动态改变集合的大小。

2.       能够在指定的位置插入和删除元素。

3.       通过toArray方法转换为一个数组。Object[] toArray(); || <T> T[] T toArray(T array[]);

在第二种形式中必须将调用集合的返回值赋给参数中的数组(否则没结果)。

4.       数组不能通过对象名打印。

5.       他没有像List中的List <E> subList(findex,lindex)方法

LinedList:

1.       她实现了List,Deque,Queue接口。提供链表的数据结构,是一个泛型类。

2.       它能够直接操作链头链尾的element。

3.       因为她实现了Deque接口的 push和pop方法,所以可以像堆栈那样进行操作。

import java.util.ArrayList;
import java.util.Arrays;

public class TestArrayList {
 // 集合可以添加不同类型的元素
 public static void main(String args[]) {
  ArrayList arrayList = new ArrayList();
  arrayList.add("hello");// 添加元素
  arrayList.add("world");
  arrayList.add(123);
  System.out.println(arrayList.get(1));// 取得位置在1上面的元素
  System.out.println(arrayList.indexOf("hello"));// 返回hello在集合中的位置,没有则返回-1
  System.out.println(arrayList.isEmpty());// 判断集合中是否包含元素
  System.out.println(arrayList.size());// 返回集合中的元素的个数
  System.out.println(arrayList.contains("hello"));// 判断是否包含某元素
  System.out.println(arrayList.toArray());// 按存储顺序返回包含此列表中所有元素的数组。
  System.out.println(arrayList.remove(2));//移除指定位置上的元素
  arrayList.clear();//清空集合中的元素
  System.out.println(arrayList);
Iterator iterator=arrayList.iterator();
  while(iterator.hasNext()){
   System.out.println(iterator.next());
  }//遍历集合中的元素
 }
}

// HashSet与ArrayList都有共同的父类,他们的存储方式不同。但是有很多方法的功能都差不多。
HashSet按照hash算法来存储集合元素的具有很好的性能;
// 特点:
// 1 不能保证元素的排列顺序,顺序可能变化;
// 2 不是同步的,多线程访问是必须同步;
// 3 集合元素值可以是null;
// 4是不允许重复的元素插入的

 

 


 

posted on 2012-09-27 11:49  晚風輕揚  阅读(92)  评论(0)    收藏  举报

导航