Java——集合

集合

Java集合框架由两种类型构成,一个是Collection;另一个是Map。 

集合对象可以上任意数据类型,并且长度可以发生变化。

集合是指集中存放一组对象的一个对象,相当于一个容器。

集合分类

Collection单列集合

  Collection<E>接口是所有集合类型的根接口,继承了Iterable<E>接口。

 (1)Collection集合有两个重要的子接口,分别是ListSet
(2)List集合的特点是元素有序、可重复。该接口的主要实现类有ArrayList和LinkedList
(3)Set集合的特点是元素无序并且不可重复。该接口的主要实现类有HashSet和TreeSet

Map双列集合

(1)双列集合根接口,用于存储具有键(key)、值(Value)映射关系的元素
(2)Map集合中每个元素都包含一对键值,并且Key唯一,在使用Map集合时通过指定的Key找到对应的Value
(3)Map接口的主要实现类有HashMap和TreeMap

List接口及实现类

List接口是Collection接口的子接口,实现一种线性表的数据结构。

ArrayList类

ArrayList是最常用的线性表实现类,通过数组实现的集合对象。

ArrayList构造和添加方法

方法名说明
public ArrayList<E>()创建一个空集合
public boolean add(E e)

将指定的参数元素追加到集合的

末尾

public void add (int

index ,E e)

在集合的指定位置添加指定的元素

(插入元素)

public void addAll(E

object)

用于将指定集合所有元素添加

到当前集合中

下列代码创建一个ArrayList对象并向其中插入几个元素 

List<String>bigCities=new ArrayList<String>();
bigcities.add("北京");
bigcities.add("上海");
bigcities.add (“「州");
System.out.println (bigcities.size())
bigcities.add (1,"伦敦");
bigcities.set (1, "各約");
System.out.println (bigcities.contains(”北京"));
System.out.print_n (bigCities) ;
System.out.printIn (bigcities.indexof(“巴黎"));

 集合都是泛型类型,实例化泛型类对象使用new运算符,也可以使用菱形语法,如下所示:

LIst<String>bigCities=new ArrayList<>();

 遍历集合元素

遍历集合中的元素有多种方法:

1、使用简单的for循环

使用简单的for循环可以遍历集合中的每个元素

for(int i=0;i<bigCities.size();i++){
    System.out.print(bigCities.get(i)+" ");
}

2、使用增强的for循环

使用增强的for循环不但可以遍历数组的每个元素,还可以遍历集合中的每个元素。

下面的代码打印集合的每个元素

for(String city :bigCities)
    System.out.println(city);
//这种方法只能按顺序访问集合中的元素,不能修改和删除元素

3、使用迭代器

迭代器是一个可以遍历集合中每个元素的对象。调用集合对象的iterator()方法可以得到Iterator对象,再调用Iterator对象的方法就可以遍历集合中的每个元素。

Iterator接口定义了3个方法:

方法说明
boolean hasNext()返回迭代器是否还有对象
E next()返回迭代器的下一个对象
void remove()删除迭代器中的当前对象

下面程序演示ArrayList的使用


package com.demo;
import java.util.*;
public class ListDemo {
    public static void main (String[1 args) {
        List<String> myPets = new ArrayList<String> () ;
        myPets.add ("cat");
        myPets.add ("dog");
        myPets.add ("horse");
        for (String pet: myPets) (
            System.out.print (pet + " ");
        }
        String[] bigPets = {"tiger", "lion");
        Collection<String> coll = new ArrayList<> () ;
        coll.add (bigPets [0]); coll.add (bigPets [1]); myPets. addAll (coll);
        System.out.printin (myPets);
        Iterator<String> iterator = myPets.iterator ();
        while (iterator.hasNext () ) {
            String pet = iterator.next () ;
            System.out.println (pet);
        }
    }
}

                                            
程序输出结果为:
cat dog horse
[cat, dog, horse, tiger, lion] cat dog horse tiger lion]
cat
dog
horse
tiger
lion
 

数组转换为List对象

  java.util.Arrays类提供了一个asList()方法,实现将数组转换为List对象的功能。

方法定义如下

public Static <T> LiSt<T> asList(T...a)
import java.util.Arrays;
import java.util.List;
 
public class ArraryToList{
    public static void main(String[] args) {
//        int-基本数据类型,不支持泛型,所以使用Integer
//        int[] List = {11,22,33};
        Integer[] List = {11,22,33};
        List<Integer> Arrary = Arrays.asList(List);
        System.out.println(Arrary);
    }
}

输出结果:

[11,22,33]

注意:Array.asLIst()方法返回的List对象是不可变的。 

Vector类和Stack类

Vector类表示向量,Stack类表示对象栈。

  • 如果不需要线程安全的来源,建议使用ArrayList代替Vector。

Set接口及实现类

Set接口是Collection的子接口,其中不允许有重复的元素

HashSet类

HashSet类用散列方法存储元素。数据不能重复;不能保证顺序;可以存储null值。

Queue接口和实现类

Queen接口Collection的子接口,是以先进后出的方式排列其元素。

ArrayDeque(可变数组的实现)和LinkedList(线性链表的实现)是Deque的两个实现类。

Map接口及实现类

Map是用来存储“键/值”对的对象。在Map中存储的关键字和值都必须是对象,并要求关键字是唯一的,而值可以重复。

Map接口

方法说明
public V put(K key,V value)

向映射对象中添加一个键值对

public V get(Object key)

返回指定键的值

public V remove(Object key)从映射中删除指定键的键值对

Map接口的实现类

1、HashMap类

2、TreeMap类

Collection类

主要包括排序、重排、查找、求极值以及一些常规操作等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值