集合类

集合类概述

Java语言的java.util包中提供了一些集合类,这些集合类又被称为容器。提到容器不难会想到数组集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。常用的集合有List集合、Set集合、Map集合,其中List与Set实现了Collection接口。个借口还提供了不痛的实现类。上述集合类的继承关系如图:

集合类接口的常用方法

Collection接口是层次结构中的根接口。构成Collection的单位,被称之为元素。Collection接口通常不能直接使用,但该接口提供了添加和删除元素、管理数据的方法。由于List接口与Set接口都实现了Collection接口,因此这些方法对List集合与Set集合是通用的。

List接口的常用方法

List接口继承了Collection接口,因此包含Collection中的所有方法。又因为List是列表类型,以List接口还提供了一些适合于自身的常用方法,如图:

可以看出,List接口中适合于自身的方法都与索引有关。由于List集合以线性方式存储对象,因此可以通过对象的索引来操作对象。

在List集合的众多方法中,add(int intdex,Object obj)方法与set(int index,Object obj)方法不容易区分。

List集合中可以包含重复的对象,若要获取重复对象第一次出现的索引位置可以使用indexOf()方法,想要获取重复对象最后一次出现的索引位置,可以使用lastIndexOf()方法。使用indexOf()与lastIndexOf()方法时,如果指定的对象在List集合中只有一个,则通过这两个方法获得的索引位置是相同的。

package org.hanqi.array;

import java.util.*; 

public class Test1 {

    public static void main(String[] args) {

        //创建List
        //1.指明数据类型,不需要指定大小
        //<>表示泛型

        List<String> list=new ArrayList<String>();

        ArrayList<Object>list1=new ArrayList<Object>();

        list1.add(1);

        list1.add(9);

        list.add("");

        //添加
        list.add("a");
        list.add("b");
        list.add("c");

        //长度
        System.out.println("List长度="+list.size());

        //取出
        System.out.println("按索引0取出get(0)="+list.get(0));

        System.out.println("遍历方式1");

        //遍历
        for(int i=0;i<list.size();i++)
        {
            System.out.println(list.get(i));
        }

        list.remove(0);//部分移除(移除指定的)

        System.out.println("遍历方式2");

        for(String s:list)
        {
            System.out.println(s);
        }

        System.out.println("遍历方式3:迭代器");

        //获取集合的迭代器,迭代器一开始是在集合的最上面
        Iterator<String> it=list.iterator();

        //试探
        while(it.hasNext())
        {
            String t=it.next();

            if(t.equals("b"))
            {
            it.remove();
            }

            System.out.println("迭代器="+t);
        }

        //移除
        //list.clear();全部移除

        System.out.println("List长度="+list.size());

        //插入
        list.add(0, "A");

        for(String s:list)
        {
            System.out.println(s);
        }

        //修改
        list.set(1, "B");
        //list.set(2, "C");
        for(String s:list)
        {
            System.out.println(s);
        }

        System.out.println("B="+list.indexOf("B"));

    }

}

List

迭代器

迭代器的创建和使用:

利用Iterator接口创建迭代器,Iterator借口位于java.util包下。Iterator接口中有3种方法。

***hasNext();如果仍有元素可以迭代,则返回true。

***next();返回迭代的下一个元素。

***remove();从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。

时间: 2024-10-03 20:45:23

集合类的相关文章

Java集合类: Set、List、Map、Queue使用

目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量.一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了. 集合类主要负责保存.盛装其他数据,因此集合类也被称为容

Java集合类操作优化总结

清单 1.集合类之间关系 Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap 本文讲的就是集合框架的使用经验总结,注意,本文所有代码基于 JDK7. 集合接口 Collection 接口 Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素(Elements).一些 Collection 允许

Java集合类详解(转)

Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).JavaSDK不提供直接继承自Collection的类,javaSDK提供的类都是继承自Collection的"子接口"如List和Set. 所

Java 集合类详解

1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等. 发现一个特点,上述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法.它的一个

C#中的常见集合类的比较

一.非泛型集合与泛型集合 非泛型集合:Array.ArrayList.HashTable.Queue.Statck.SortedList 泛型集合:List.Dictionary.Queue.Stack.SortedList 二.常见的集合类 Array.ArrayList.List (一)Array: 即常见的数组形式,大小固定,命名空间为System (二)ArrayList: 命名空间为System.Collection,是数组的复杂版本.ArrayList 类提供在大多数 Collect

JAVA集合类之ArrayList和LinkedList性能比较

关于ArrayList和LinkedList这两个集合类的性能,网上很多文章表示:ArrayList的插入性能要比LinkedList差.今天突然想测试下,这个结论是否准确. 编写了如下代码: import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class Demo { public static void main(String[] args) { int count = 

常用字符串与集合类转换的工具类

在项目中,我们经常需要把接收到的字符串转换成对应的集合类保存,或者把集合类转换成字符串以方便传输,这个工具类中封装了几个常用的方法,对于这种转换需求十分方便. 1 import java.util.Arrays; 2 import java.util.Collection; 3 import java.util.HashMap; 4 import java.util.HashSet; 5 import java.util.Map; 6 import java.util.Properties; 7

40个Java集合类面试题和答案(转载)

Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实

Java集合类详解

集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些 Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,J