(笔记)关于集合中ArrayList例子

本文详细介绍了Java集合框架中的主要类型,如List、Map、Set和Queue,并通过具体示例展示了如何使用ArrayList进行员工信息管理,包括添加、查找、修改和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合:

主要是分成以下几种

List结构集合类

ArrayList  LinedList Vector Stack

Map结构集合类

HashMap Hashtable

Set结构的集合类

HashSet  TreeSet

Queue结构的集合

Queue接口


ArrayList类:实现了可变数组,允许保存所有元素,包括null并可以根据索引位置对集合进行快速访问和随机访问
缺点:向指引的索引位置插入对象或删除对象比较慢


实例:

package lei;
import java.util.*;
import java.io.*;
public class newDemo {
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
    EmpManage em=new EmpManage();
    BufferedReader br =new BufferedReader(new InputStreamReader(System.in));//br流
    while(true){
    	  System.out.println("选择要进行的操作");
    	  System.out.println("1:添加员工");
    	  System.out.println("2:查找员工");
    	  System.out.println("3:修改薪水");
    	  System.out.println("4:删除员工");
    	  System.out.println("5:显示所有员工");
    	  String operType=br.readLine();
    	  if(operType.equals("1")){           //判断是否相等
    		  System.out.println("请输入编号");
    		  String empno=br.readLine();
    		  System.out.println("请出入名字");
    		  String name=br.readLine();
    		  System.out.println("请输入薪水");
    		  float sal =Float.parseFloat(br.readLine());//String强制转换为float
    		  Emp emp=new Emp(empno,name,sal);
    		  em.addEmp(emp);
    	  }else if(operType.equals("2")){
    	 System.out.println("请输入编号");
    	 String empno=br.readLine();
        	em.showinfo(empno);
          }else if(operType.equals("3")){
         System.out.println("请输入要修改的编号");
         String empno=br.readLine();
         System.out.println("请输入修改后的薪水");
         float newsal=Float.parseFloat(br.readLine());
         em.updateSal(empno, newsal);
          }else if(operType.equals("4")){
        	  System.out.println("请输入编号");
        	  String empno= br.readLine();
        	  em.delemp(empno);	  
          }else if(operType.equals("5")){
        	  em.showall();
          }
	}
	}

}
class EmpManage{
	private ArrayList al=null;    //定义一个ArrayList
	public EmpManage(){ 
		al=new ArrayList();       //赋值ArrayList
	}
	public void  addEmp(Emp  emp){  //方法1
		al.add(emp);                //集合中添加元素的方法 
	}
	public void  showinfo(String empno){
		for(int i=0; i<al.size();i++){    //遍历集合元素
			Emp emp = (Emp)al.get(i);     //提取集合元素
			if (emp.getEmpno().equals(empno)){   //判断是否相等
				System.out.println("找到该员工信息是");
				System.out.println("编号="+ empno);
				System.out.println("名字="+ emp.getName());
			}
		
			
		}
	}
	public void updateSal(String empno,float newsal){   
		for(int i=0;i<al.size();i++){    //遍历集合元素
			Emp emp =(Emp)al.get(i);
			if(emp.getEmpno().equals(empno)){
				emp.setSal(newsal);            //set方法更新(覆盖属性)
			}
		}
	}
	public void delemp(String empno){
		for(int i=0;i<al.size();i++){
			Emp emp=(Emp)al.get(i);
			if(emp.getEmpno().equals(empno)){
				al.remove(i);               //集合中删除元素
			}
		}
	}
	public void showall(){
		for(int i=0;i<al.size();i++){
			Emp emp=(Emp)al.get(i);
			System.out.println("第"+i+"员工的基本信息为:");
			System.out.println("名字为"+emp.getName());
			System.out.println("编号为"+emp.getEmpno());
			System.out.println("薪水为"+emp.getSal());
		}
	}
}
class Emp{
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmpno() {
		return Empno;
	}
	public void setEmpne(String empne) {
		Empno = empne;
	}
	public float getSal() {
		return sal;
	}
	public void setSal(float sal) {
		this.sal = sal;
	}
	private String name;
	private String Empno;
	private float  sal;
	
	public Emp(String name , String Empno,float sal){
		this.name=name;
		this.sal=sal;
		this.Empno=Empno;
	}
}
ArrayList可以添加重复的对象。

### Java 集合框架概述 Java集合框架提供了用于存储和操作对象的类和接口。主要分为两大类别:单列集合和双列集合。 #### 单列集合 单列集合主要用于处理一组不带键的对象,主要包括`Collection`接口及其子接口`List`、`Set`以及其实现类。这些实现类允许存储一系列元素并提供不同的访问特性[^2]。 - **List**: 维护插入顺序,可以有重复项。常见的实现类包括`ArrayList`、`LinkedList`等。 - **Set**: 不维护特定顺序且不允许重复元素。常见实现如`HashSet`、`TreeSet`。 #### 双列集合 双列集合即映射(Map),它由键值对组成,其中每个键最多只映射到一个值。`Map`接口的主要实现类包括但不限于: - `HashMap`: 基于哈希表实现,在遍历时不会保持任何特定顺序;支持null键和多个null值[^1]。 - `LinkedHashMap`: 记录了插入顺序或者最近最少使用的顺序(LRU)。 - `TreeMap`: 提供按键自然排序或自定义比较器排序的功能。 对于初学者来说,理解上述基本概念非常重要。通过实践编写简单的程序来熟悉不同类型的集合是非常有益的做法之一。例如,下面是一个简单演示如何使用`HashMap`的例子: ```java import java.util.HashMap; public class HashMapExample { public static void main(String[] args){ HashMap<String, String> hm = new HashMap<>(); // 添加键值对 hm.put("key1", "value1"); hm.put("key2", "value2"); // 输出指定键对应的值 System.out.println("--- key1 ----对应的值是:-----" + hm.get("key1")); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值