Java学习之路003——集合

简介: Java基础操作之——集合。文章演示了集合的一些常规常用的操作,以及遍历、Set集合、Map集合、和一些集合操作工具的使用。

1 代码演示

【1】新增一个类,用来测试集合。先创建一组数组,数组可以存放不同的数据类型。对于Object类型的数组元素,可以通过.getClass方法获取到具体类型。

【2】如果数组指定类型为int的时候,使用.getClass()就会提示错误。

【3】集合获取元素的值,通过get(下标)来获取。

【4】集合可以获取到指定元素的类型

【5】可以直接输出集合对象来打印集合的内容。使用输出语句,输出的对象会被自动toString()

List集合

  • 是有序的,内存空间是连续的,查询效率高
  • 删除和插入的效率低:删除或插入一个元素后,为了保证集合相邻数据的空间是连续的,那么其他元素也都要被移动。

LinkedList集合:

  • 查询效率低。
  • 删除和插入效率高。

2 集合常见操作

2.1 常用遍历

// 集合或元素个数 size()
System.out.println(list.size());
// 集合遍历 for循环
for (int i = 0; i < list.size(); i++) {
  System.out.println(list.get(i));
}
// foreach
for(Object o : list) {
  System.out.println(o);
}

2.2 迭代器进行遍历

Iterator iterator = list.iterator();
while (iterator.hasNext()) {
  System.out.println(iterator.next());
}

3、Set集合

  •  List接口特点:  元素可以重复,保证顺序性
  •  Set接口特点:元素不可重复,不保证顺序

3.1 Set集合演示

Set集合的顺序是随机的, 并且会自动去重。

Set set = new HashSet();
set.add(1);
set.add("2");
set.add(3.3);
set.add(4.0F);
set.add(true);
set.add(3.3);
System.out.println(set);

3.2 Set集合遍历

只能通过迭代器进行遍历

for (Object o : set) {
            System.out.println(o);
        }
        System.out.println("**************************");
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

3.3 TreeSet

无序不可重复,但是可以按照元素的大小顺序自动排序

Set set = new TreeSet();
set.add(1);
set.add(2);
set.add(33);

4、Map集合

4.1 Map基础操作

【1】map中的值,只能通过key来获得,不能通过下标来获取,因为数据是无序的。

Map map = new HashMap();
        map.put("name","Wesky");
        map.put("Company","NTI");
        map.put("age",18);
        map.put("sex","男");
        map.put("age",20);
        map.put(666,"hello world");
        map.put(666,999);
        System.out.println(map.keySet());
        System.out.println(map.values());

【2】如果存在重复的key,以最后的key的数据为准,原先会被覆盖。

4.2 Map的遍历

两种遍历方式。

Set keySet = map.keySet();
for (Object o : keySet) {
  System.out.println("key = "+ o + " | value = "+map.get(o));
}
System.out.println("**************************");
for (Object o : map.entrySet()) {
  Map.Entry entry = (Map.Entry) o;
  System.out.println("key = "+ entry.getKey() + " | value = "+entry.getValue());
}

五、集合工具类

5.1 Arrays

提供一系列数组与集合转换工具

5.2 Collections

提供对集合的多种操作方式

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