码迷,mamicode.com
首页 > 编程语言 > 详细

java 集合

时间:2015-03-12 18:50:11      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

Java集合,数目是可变的,并且集合只能存储引用数据类型,不能放基本类型
所有集合类都存放在 java.util包中,所以使用集合时,需要导入该包
集合又称为类集或容器
Java中的集合类主要由两个接口派生:Collection/Map
Collection接口派生了 List, Set集合
定义形式如下:
public interface Collection<E> extends Interable<E>

Collection 接口的方法定义

//向集合插入一个元素
public boolean add(E o)

//向集合添加一个集合 c 的所有元素
public boolean addAll(Collection<? extends E> c)

//清除集合中所有的元素
public void clear()

//判断集合中是否存在指定的元素。若存在,则返回 true,否则返回 false
public boolean contains(Object o)

//判断集合中是否存在指定的集合 c 的所有元素,若存在,则返回 true,否则为 false
public boolean containsAll(Collection<?> c)

//比较两个集合是否相等
public boolean equals(Object o)

//返回此 collection 的哈希值
public int hashCode()

//判断此集合是否为空。若为空,则返回 true,否则返回 false
public boolean isEmpty()

// 为 Iterator接口实例化,用于遍历集合中的元素
public Iterator<E> iterator()

//从集合中删除指定的元素
public boolean remove(Object o)

//从集合中删除指定集合c中出现的所有元素
public boolean removeAll(Collection<?> c)

//从集合中删除指定集合 c 中出现的所有元素
public boolean retainAll(Collection<?> c)

//返回此集合中的元素个数
public int size()

//返回包含此元素中所有元素的对象数组
public Object[] toArray()

//返回追念此元素中所有元素的数组,并可以指定返回的数组类型

一般情况下,不会直接操作 Collection 接口,而是调用其子接口:
List<E>:集合中的元素按照索引值来排序,允许存放重复的元素

Queue<E>:队列接口,以 先进先出的方式排序

Set<E>:集合中的元素不按特定方式排序,不能存放重复的,但是用别的方法实现排序

SortedSet<E>:可以对集合中的元素进行排序
public <T> T[] toArray(T[] a)

List 接口,主要有两个实现类: ArrayList 和 LinkedList

List接口的定义如下:
public interface List<E> extends Collection<E>
常用方法:

//在集合的指定位置插入一个元素
public void add(int index, E element)

//在集合的指定位置插入集合 c 的所有元素
public boolean addAll(int index, Collection<? extends E> c)

//返回此集合中指定位置的元素
public E get(int index)

//返回此集合中首次出现指定元素的索引,如果不存在,则返回 -1
public int indexOf(Object o)

//返回此集合中最后出现指定元素的索引,如果没有,则返回 -1
public int lastIndexOf(Object o)

//为 ListIterator接口实例化,用于遍历集合中的元素
public ListIterator<E> listIterator()

//同上,只是按指定的位置开始
public ListIterator<E> listIterator(int index)

//删除指定位置的元素
public E remove(int index)

//替换指定位置的元素
public E set(int index, E element)

//返回一个新的元素集合,包含从指定的位置到指定的位置元素
public List<E> subList(int fromIndex, int toIndex)

数组列表类  ArrayList类

//增加数组的容量
public void ensureCapacity(int minCapacity)

//删除集合中索引在 fromIndex(包括)和toIndex(不包括)之间的所有元素
protected void removeRange(int fromIndex, int toIndex)

//调整为恰当的大小
public void trimSize()

//向集合中添加元素
import java.util.Collection;
import java.util.List;
import java.util.ArrayList;
public class Hi
{
    public static void main(String[] args)
    {
        // 通过 ArrayList实例化 Collection
        Collection<String> collection = new ArrayList<String>();
        //通过 ArrayList实例化 list
        List<String> list = new ArrayList<String>();
        //添加元素
        collection.add("1");
        collection.add("2");
        collection.add("3");
        // 打印集合中的元素
        System.out.println("collection集合: "+collection);
        // 添加元素
        list.add("A");
        list.add("C");
        list.add(1, "B");
        list.addAll(0, collection);
        System.out.println("list集合:"+list);
    }
}
/*
collection集合: [1, 2, 3]
list集合:[1, 2, 3, A, B, C]
*/

// 删除集合中的元素
import java.util.Collection;
import java.util.List;
import java.util.ArrayList;
public class Hi
{
    public static void main(String[] args)
    {
        // 通过 ArrayList实例化 collection
        Collection<String> collection = new ArrayList<String>();
        //通过 ArrayList 实例化 List
        List<String> list = new ArrayList<String>();
        //添加元素
        collection.add("1");
        collection.add("2");
        collection.add("3");
        System.out.println("collection 集合:"+collection);
        list.add("A");
        list.add("C");
        list.add(1, "B");
        //向指定的位置添加一个集合的所有元素
        list.addAll(0,collection);
        System.out.println("list集合删除前:"+list);
        //删除元素 B
        list.remove("B");
        // 删除指定位置的元素
        list.remove(3);
        //删除指定集合的元素
        list.removeAll(collection);
        System.out.println("list集合删除后:"+list);
    }
}
/*
collection 集合:[1, 2, 3]
list集合删除前:[1, 2, 3, A, B, C]
list集合删除后:[C]
*/
// 集合的其他操作
import java.util.Collection;
import java.util.List;
import java.util.ArrayList;
public class Hi
{
    public static void main(String[] args)
    {
        // 通过 ArrayList实例化 collection
        Collection<String> collection = new ArrayList<String>();
        //通过 Arraylist实例化 List
        List<String> list = new ArrayList<String>();
        //添加元素
        collection.add("1");
        collection.add("2");
        collection.add("3");
        list.add("A");
        list.add("C");
        list.add(1,"B");
        //向指定位置添加一个集合的所有的元素
        list.addAll(0,collection);
        System.out.println("list集合:"+list);
        //截取集合
        List<String> subList = list.subList(1, 5);
        System.out.println("subList集合:"+subList);
        //获取指定位置的元素
        System.out.println("设置list集合元素前::"+list.get(3));
        //设置指定位置的元素
        list.set(3,"set");
        System.out.println("设置list集合元素后::"+list.get(3));
        // 获取指定元素在集合中的索引位置,若不存在,则返回 -1
        System.out.println("list集合中,元素3的位置:"+list.indexOf("3")+",元素D的位置:"+list.indexOf("D"));
        // 将集合转为字符串数组
        String arrString[] = list.toArray(new String[]{});
        for(String str: arrString)
        {
            System.out.println(str+" ");
        }
        //判断集合是否为空
        System.out.println("\nlist集合是滞为空:"+list.isEmpty());
        //清除集合中的所有元素
        list.clear();
        System.out.println("\nlist集合是为空:"+list.isEmpty());
    }
}
/*
list集合:[1, 2, 3, A, B, C]
subList集合:[2, 3, A, B]
设置list集合元素前::A
设置list集合元素后::set
list集合中,元素3的位置:2,元素D的位置:-1
1
2
3
set
B
C

list集合是滞为空:false

list集合是为空:true
*/
链表类 LinkedList 类
是用 链表结构保存元素
常用方法:
public void addFirst(E o)
public void addLast(E o)
public Iterator<E> descendingIterator()
public E element()
public E get(int index)
public E getFirst()
public E getLast()
public int indexOf(Object o)
public int lastIndexOf(Object o)

public ListIterator<E> listIterator(int index)
public boolean offer(E o)
public boolean offerFirst(E e)
public boolean offerLast(E e)

public E peek()
public E peekFirst()
public E peekLast()

public E poll()
public E pollFirst()
public E pollLast()
public E pop()
public void push(E e)
public E remove()

public E remove(int index)
public boolean remove(Object o)
public E removeFirst()
public boolean removeFirstOccurrence(Object o)
public E removeLast()
public boolean removeLastOccurrence(Object o)
public E set(int index, E element)

//在链表开头和结尾增加数据
import java.util.List;
import java.util.LinkedList;
public class Hi
{
    public static void main(String[] args)
    {
        LinkedList<String> link = new LinkedList<String>();
        link.add("1");
        link.add("2");
        link.add("3");
        System.out.println("添加前:"+link);
        //在链表开头处增加
        link.addFirst("F");
        //在链表结尾处增加
        link.addLast("L");
        System.out.println("添加后:"+link);
    }
}
/*
添加前:[1, 2, 3]
添加后:[F, 1, 2, 3, L]
*/
获取链表头
import java.util.List;
import java.util.LinkedList;
public class Hi
{
    public static void main(String[] args)
    {
        LinkedList<String> link = new LinkedList<String>();
        link.add("1");
        link.add("2");
        link.add("3");
        link.addFirst("F");
        link.addLast("L");
        LinkedList<String> newLink = new LinkedList<String>(link);
        System.out.println("添加元素后:\n"+link);
        System.out.println("get()方法获取表头:"+link.getFirst());
        System.out.println("使用 get()方法后:\n"+link);
        System.out.println("element()方法获取表头:"+link.element());
        System.out.println("使用element()方法后:\n"+link);
        System.out.println("peek()方法获取表头:"+link.peek());
        System.out.println("使用peek()方法后:"+link);
        System.out.println("poll()方法获取表头:"+link.poll());
        System.out.println("使用poll()方法后:"+link);
        System.out.println("pop()方法获取表头:"+link.pop());
        System.out.println("使用pop()方法后:"+link);
        System.out.println("\n********************\n");
        int len = newLink.size();
        for(int i=0; i<len; i++)
        {
            System.out.print(newLink.poll()+"\t");
        }
        System.out.println();
    }
}
/*
添加元素后:
[F, 1, 2, 3, L]
get()方法获取表头:F
使用 get()方法后:
[F, 1, 2, 3, L]
element()方法获取表头:F
使用element()方法后:
[F, 1, 2, 3, L]
peek()方法获取表头:F
使用peek()方法后:[F, 1, 2, 3, L]
poll()方法获取表头:F
使用poll()方法后:[1, 2, 3, L]
pop()方法获取表头:1
使用pop()方法后:[2, 3, L]

********************

F       1       2       3       L
*/

 

java 集合

标签:

原文地址:http://www.cnblogs.com/lin3615/p/4333177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!