【Java】之集合大总结(下)

简介: Map接口是一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,Map里键不允许重复,访问Map的元素,只要指定了键就能找到对应的值。

五、Map接口
Map接口是一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,Map里键不允许重复,访问Map的元素,只要指定了键就能找到对应的值。

1.Map接口的声明
public interface Map

2.Map接口的方法
public void put (Object key,Object value)

功能描述:将指定的键和值存入集合并进行映射关联

public Object get(Object key)

功能描述:获得与关键字key相对应的值,如果没有就返回null

public void clear()

功能描述:删除所有映射关系

public boolean isEmpty()

功能描述:判断Map是否还存在映射关系,存在返回true,反之返回false

public void putAll(Map m)

功能描述:将t中包含的元素添加进该方法所在的Map

public int size()

功能描述:返回Map中键值对的个数

public remove(Object key)

功能描述:删除键所对应的映射关系

3.HashMap类
是基于哈希表的Map接口的实现。

4.treeMap
TreeMap类继承AbstractMap类,同时实现了SortedMap,是SortedMap接口的基于红黑树的实现。该类和TreeSet相似,而且处理TreeMap的keySet方法所得到的集合与TreeSet相同。此类保证了映射按照升序顺序排列关键字。

compare To()
比较此对象与指定对象的顺序。如果大于返回正整数,等于返回0,小于返回负整数。抛出类型ClassCastException(如果指定对象的类型无法与该对象进行比较)

Comparable接口
该接口只有Compare To(T o)方法,用comparable接口,需要compara To()方法。

Comparator
该接口不仅有int compare(T o1,T o2)方法,还有boolean equals(Object obj)指示某个其他对象是否等于此Comparator,该接口可以在类外部使用,通过该接口的一个匿名类对象当做参数传递给Collections.sort()方法或Arrays.sort()方法实现排序。

其中compare()比较两个参数,如果大于返回正整数,等于返回0,小于返回负整数。

六、集合的遍历
代码

package test1;
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
public class ListDemo {
    public static void main(String[] args) {
        List<String> list=new ArrayList();
        list.add("hello\nworld\njava");
        System.out.println("----迭代器遍历方式-----");
        Iterator<String> iterator=list.iterator();
        while(iterator.hasNext()) {
            String s=iterator.next();
            System.out.println(s);
        }
        System.out.println("----增强for遍历方式-----");
        for (String string : list) {
            System.out.println(string);
        }
        System.out.println("----JDK8的forEach遍历方式-----");
        list.forEach(s->System.out.println(s));
    }
}

执行结果
image.png

相关文章
|
10天前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
33 3
|
3月前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
58 6
|
3月前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
50 3
|
3月前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
42 2
|
27天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
44 5
|
2月前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
47 4
|
2月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
40 2
|
2月前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
下一篇
开通oss服务