栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-集合

1.Java 集合框架

集合框架体系:

集合接口,集合框架定义了一些接口。本节提供了每个接口的概述:

2.接口描述

1、 Collection 接口
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)
Collection 接口存储一组不唯一,无序的对象。

Collection接口中提供的一些常用的方法,使用于set和List:

函数意义
boolean add(E e)确保此集合包含指定的元素(可选操作)
boolean contains(Object o)如果此集合包含指定的元素,则返回 true 。
boolean equals(Object o)将指定的对象与此集合进行比较以获得相等性。
int hashCode()返回此集合的哈希码值。
boolean isEmpty()如果此集合不包含元素,则返回 true 。
Iterator iterator()返回此集合中的元素的迭代器。
boolean remove(Object o)从该集合中删除指定元素的单个实例(如果存在)(可选操作)。
int size()返回此集合中的元素数。
Object[] toArray()返回一个包含此集合中所有元素的数组。

2、 List 接口
List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。

List 接口存储一组不唯一,有序(插入顺序)的对象。

常见的实现类:
ArrayList、linkedList

3、 Set
Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。Set 接口存储一组唯一,无序的对象。

常见的实现类:
HashSet

4、 SortedSet
继承于Set保存有序的集合。

5、 Map
Map 接口存储一组键值对象,提供key(键)到value(值)的映射。

常见的实现类:
HashMap ,linkedHashMap

map接口中一些常用的方法:

函数意义
V put(K key, V value)将指定的值与该映射中的指定键相关联(可选操作)。
V remove(Object key)如果存在(从可选的操作),从该地图中删除一个键的映射。
default V replace(K key, V value)只有当目标映射到某个值时,才能替换指定键的条目
default boolean replace(K key, V oldValue, V newValue)仅当当前映射到指定的值时,才能替换指定键的条目。
boolean containsKey(Object key)如果此映射包含指定键的映射,则返回 true 。
boolean containsValue(Object value)如果此地图将一个或多个键映射到指定的值,则返回 true 。
Set> entrySet()返回此地图中包含的映射的Set视图。
Set keySet()返回此地图中包含的键的Set视图。
V get(Object key)返回到指定键所映射的值,或 null如果此映射包含该键的映射。
int hashCode()返回此地图的哈希码值。
Collection values()返回此地图中包含的值的Collection视图。
int size()返回此地图中键值映射的数量。
boolean equals(Object o)将指定的对象与此映射进行比较以获得相等性。

6 Map.Entry
描述在一个Map中的一个元素(键/值对)。是一个 Map 的内部接口。

7 SortedMap
继承于 Map,使 Key 保持在升序排列。

8 Enumeration
这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。

3.集合遍历(除了map集合)
import java.util.*;
 
public class Test{
 public static void main(String[] args) {
     List list=new ArrayList();
     list.add("Hello");
     list.add("World");
     list.add("HAHAHAHA");
     //第一种遍历方法使用 For-Each 遍历 List
     for (String str : list) {            
     //也可以改写 for(int i=0;i ite=list.iterator();
     while(ite.hasNext())//判断下一个元素之后有值
     {
         System.out.println(ite.next());
     }
 }
}

4.map集合遍历

Map是java中的接口,Map.Entry是Map的一个内部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法。

keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

map不能直接使用迭代器因为map没有像set继承Collection所以得如下方式使用

import java.util.*;
 
public class Test{
     public static void main(String[] args) {
      Map map = new HashMap();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");
      
      //第一种:普遍使用,二次取值
      System.out.println("通过Map.keySet遍历key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }
      
      //第二种
      System.out.println("通过Map.entrySet使用iterator遍历key和value:");
      Iterator> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
      
      //第三种:推荐,尤其是容量大时
      System.out.println("通过Map.entrySet遍历key和value");
      for (Map.Entry entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
    
      //第四种
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/606723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号