Java集合

本文介绍了Java集合的概念,包括数组与集合的区别,以及集合框架的体系结构。集合框架包含Collection和Map两大类,其中Collection下有List、Queue和Set接口,分别以ArrayList、LinkedList和HashSet、TreeSet为代表。Map接口则由HashMap和TreeMap实现,用于存储键值对。文章还探讨了各种集合的实际应用场景,如使用ArrayList存储字符串、HashSet管理类对象和HashMap实现字典功能。
摘要由CSDN通过智能技术生成

Java集合

概念

概念:

	Java中的集合是工具类,可以存储任意数量的具有共同属性的对象,注意与数组的区别

数组和集合的区别:

  1. 数组的长度是固定的且只能存储一种数据类型;集合的长度是动态扩展的可以存储多种数据类型(泛型会限制)
  2. 数组可以存储基本数据类型和引用数据类型,但是集合只能是引用类型

应用场景:

  1. 无法预测存储数据的数量
  2. 同时存储具有一对一关系的数据
  3. 需要进行数据的增删
  4. 数据的重复问题

体系结构

体系结构两种:Collection 与 Map
Collection (主要存储类的对象)有三个子接口:

  1. List接口 序列 有序且可重复,主要有ArrayList 和LinkedList 实现类
  2. Queue接口 队列 有序且可重复,主要有LinkedList 实现类
  3. Set接口 集 无序不可重复,主要有HashSet 和TreeSet 实现类
  • ArrayList 的底层实现是数组,所以在内存中是连续存储的,查询速度快,增加和删除速度慢一些。
  • LinkedList 底层是基于双向链表的,增加和删除是速度快,查询的速度慢。
  • HashSet 是通过哈希表实现的,数据元素可以是null,但是只能有一个null
  • TreeSet 是基于二叉树实现的,可以实现数据的自动排序,不允许放空值

Map(存储键值对的数据)有:

  1. HashMap 和TreeMap 实现类,存储的是键值对<Key,Value>
  • HashMap 基于哈希表实现,适用于在Map中插入、删除和定位元素
  • TreeMap 基于红黑树实现,适用于自然排序和自定义顺序遍历

实际应用

在List中存储并操作字符串信息

package com.project.set;

import java.util.ArrayList;
import java.util.List;

public class ListDemo1 {
   
	public static void main(String[] args) {
   
		//用ArrayList存储编程语言的名称,并输出
		List list=new ArrayList();
		list.add("Java");
		list.add("C");
		list.add("C++");
		list.add("Go");
		list.add("swift");
		//输出列表中元素的个数
		System.out.println("列表中元素的个数为:"+list.size());
		
		//遍历输出所有编程语言
		System.out.println("________________________________________");
		for(int i=0;i<list.size();i++) {
   
			System.out.print(list.get(i)+" ");
		}
		//移除列表中的C++
		System.out.println();
//		list.remove(2);
		list.remove("C++");
		System.out.println("________________________________________");

		System.out.print("移除C++以后的列表元素为:");
		for(int i=0;i<list.size();i++) {
   
			System.out.print(list.get(i)+" ");
		}
	}
}

在这里插入图片描述

例题一:使用集合ArrayList对字符串进行存储和管理

import java.util.ArrayList;
import java.util.List;
//使用集合ArrayList对字符串进行存储和管理
public class ListDemo1 {
   

	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		List list=new ArrayList();
		list.add("语文");
		list.add("数学");
		list.add("英语");
		list.add("化学");
		list.add("物理");
		list.add("生物");
		System.out.println("列表中元素的个数为:"+list.size());
		for(int i=0;i<list.size();i++) {
   
			System.out.println("第"+(i+1)+"个为"+list.get(i));
		}
	}

}

在这里插入图片描述

例题二:定义一个员工信息类Employee,使用ArrayList对员工信息进行添加和显示

public class Employee {
   
	private int id;
	private String name;
	private double salary;
	public String getName() {
   
		return name;
	}
	public void setName(String name) {
   
		this.name = name;
	}
	public double getSalary() {
   
		return salary;
	}
	public void setSalary(double salary) {
   
		this.salary = salary;
	}
	
	public int getId() {
   
		return id;
	}
	public void setId(int id) {
   
		this.id = id;
	}
	public Employee() {
   
		super();
		// TODO Auto-generated constructor stub
	}
	public Employee(int id, String name, double salary) {
   
		super();
		this.id = id;
		this.name = name;
		this.salary = salary;
	}
	
}
public class EmployeeTest {
   

	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		Employee ey1=new Employee(1,"张三",5000.0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值