Java中的集合类

更新时间:2023-06-30 14:48:13 阅读: 评论:0

Java中的集合类
(Collection framework)我们在前面学习过java数组,java数组的程度是固定的,在同一个数组中只能存放相同的类型数据。数组可以存放基本类型的数据,也可以存入对象引用的数据。
在创建数组时,必须明确指定数组的长度,数组一旦创建,其长度就不能改变,在许多应用的场合,一组数据的数目不是固定的,比如 一个单位的员工数目是变化的,有老的员工跳槽,也有新的员工进来。
为了使程序方便地存储和操纵数目不固定的一组数据,JDK中提供了 java集合类,所有java集合类都位于java.util包中,与java数组不同,java集合类不能存放基本数据类型数据,而只能存放对象的引用。
Java集合类分为三种
Set(集合):集合中对象不按特定的方式排序。并且没有重复对象,但它有些实现类中的对象按特定方式排序。--无序,不能重复
List(列表):集合中的对象按照检索位置排序,可以有重复对象,允许按照对象在集中的索引位置检索对象,List和数组有些相似。--有序,可以重复
Map(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复,它的有些实现类能对集合中的键对象进行排序。
Java的主要集合类的框架图
Collection和Iterator接口
笔记模板在Collection接口中声明了适用于java集合(只包括Set和List)通用方法。
Collection接口的方法
方法
描述
boolean add(Object o)
向集合中加入一个对象的引用
void  clear( )
删除集合中所有对象,即不再对持有对象的引用
boolean contains(Object o)
判断在集合中是否含有特定对象的引用
boolean isEmpty()
判断集合是否为空
Iterator iterator( )
返回一个戒烟的最佳方法Iterator对象,可用它来遍历集合中的元素
boolean remove(Object o)
从集合中删除一个对象的引用
int size( )
返回集合中元素的数目
Object [ ] toArray()
返回一个数组,该数组包含集合中的所有元素
Set接口和List即可都继承了Collection接口,而Map接口没有继承Collection接口,因此可以对Set对象和List对象调用以上方法,但是不能对Map对象调用以上方法。
Collection接口的iterator()和toArray()方法多用于获得集合中的所有元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。
Iterator隐藏底层集合的数据结构,向客户程序提供了遍历各种类型的集合的统一接口。
Iterator接口中声明了如下方法:
慢慢来● hasNext():判断集合中的元素是否遍历完毕,如果没有,就返回true
公司档案管理制度next():返回下一个元素
remove():从集合中删除上一个由next()方法返回的元素。
注意:如果集合中的元素没有排序,Iterator遍历集合中元素的顺序是任意的,并不一定与像集合中加入的元素的顺序一致。
Set(集)
  Set是最简单的一种集合,集合中的对象不按特定方式排序,并没有重复对象。Set接口主要有两个实现类:HashSet类还有一个子类LinkedHashSet类,它不仅实现了哈希算法,而且实现了链表数据结构,链表数据结构能提高插入核算出元素的性能。TreeSet类实现了SortedSet接口中,具有排序功能。
List(列表)
List的主要特征使其元素已先行方式存储,集合中允许存放重复对象。List接口主要的实现类包括:
ArrayList—ArrayList代表长度可变的数组。允许对元素进行快速的随机访问,但是向ArrayList中插入与删除元素的速度较慢。
LinkedList—在实现中采用链表数据结构。对顺序访问进行了优化,向List中插入和删除元素的速度较快,随机访问速度则相对较慢,随机访问是指检索位于特定索引位置元素。
Map(映射)
Map(映射)是一种吧键对和值对象进行映射的集合。它的每一个元素都包含一对键对象和值对象,而之对象仍可以是Map类型。 以此类推,这样就形成了多级映射。向Map集合中加入元素时,必须提供一对键对象和值对象,从Map集合上检索元素只要给出键对象,就会返回值对象。
实例1
CollectionAll.java
package collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
public class CollectionAll {
    public static void main(String args[]){
        List list1=new LinkedList();
       
        list1.add("");
        list1.add("");
        list1.add("");
        list1.add("");
        traver(list1);
       
        List list2=new ArrayList();
        list2.add("");
        list2.add("");
        list2.add("");
        list2.add("");
        traver(list2);
   
        Set t1=new HashSet();
        t1.add("");
        t1.add("");
        t1.add("");
        t1.add("");
        traver(t1);
       
        SortedSet t2=new TreeSet();
        t2.add("");
        t2.add("");
        t2.add("");
        t2.add("");
        System.out.println(t2.size());
        traver(t2);
       
        LinkedHashSet t3=new LinkedHashSet();
        t3.add("");
        t3.add("");
        t3.add("");
        t3.add("");
        traver(t3);
       
        Map m1=new HashMap();
        m1.put("name05","");
        m1.put("name06","");
        m1.put("name08","");
        m1.put("name09","");
        traver(m1.keySet());
        traver(m1.values());
       
        SortedMap m2=new TreeMap();
        m2.put("name01","");
        m2.put("name02","");
        m2.put("name03","");
        m2.put("name04","");
        traver(m2.keySet());iphone7上市时间
        traver(m2.values());
   
        LinkedHashMap m3=new LinkedHashMap();
        m3.put("name01","");
        m3.put("name02","");
        m3.put("name03","");
        m3.put("name04","");
        traver(m3.keySet());
        traver(m3.values());
秦国君主       
      Hashtable numbers=new Hashtable();
        numbers.put("name01","");
        numbers.put("name02","");
        numbers.put("name03","");
        numbers.put("name04","");
        traver(numbers.keySet());
        traver(numbers.values());
    }
        static void traver(Collection coll) {
            Iterator iter=coll.iterator();
            while(iter.hasNext()){
                String elem=(();
                System.out.print(elem+" ");
            }
            System.out.println();
        }
    }
一. 集合框架中的各种实现类
HashSet目光所及皆是你
HashSet类按照哈希算法---存取集合中的对象,具有很好的存取和查找功能。当向集合中加入一个对象时,HashSet对调用对象的图片管理hashCode()方法来多的哈希码,然后根据这个哈希码进一步计算出对象在集合中的存放位置。
实例2  MyHashSet.java
package collection;
import java.util.*;
public class MyHashSet{
    public static void main(String args[]){
        HashSet t=new HashSet(6);
        Object[] values={"Tom","Mike","Mary","Linda","Jone","Jack"};
        for(int i=0;i<values.length;i++){
            values[i].hashCode();
            t.add(values[i]);
            System.out.println(t.hashCode());
        }
        t.remove("Mike");
        System.out.println("size="+t.size());
        Iterator iter=t.iterator();
        while(iter.hasNext()){
                String elem=(();
                System.out.println(elem+" ");
        }
        System.out.ains("Jack"));
        System.out.ains("Linda"));
        System.out.ains("Mike"));
    }
}
TreeSet
TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序,一下程序创建了一个TreeSet对象,然后向集合中加入了4个Integer对象

本文发布于:2023-06-30 14:48:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1070365.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:集合   对象   元素   数组   接口   存放
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图