• java中集合类


    (1)集合类和数组:集合类和数组都是容器,集合类和数组的不同之处是:数组的长度是固定的,而集合类的长度不固定;数组用来存放基本数据类型,而集合用来存放引用数据类型。

    (2)常用的集合有:List集合,set集合,map集合,其中List集合和Map集合是实现collection接口的。

    (3)collection接口,List接口,Set接口:

           collection接口是,List和Set的父接口。list是有序集合,除Iteable接口和Collection接口所有方法外,增加所有和index有关的方法,比如add(int index,E e),remove(int index)...常用实现类ArrayList,LinkedList,Vector;set无序集合,继承自Collection,不含重复元素的集合,最多包含一个null,常见实现类HashSet,TreeSet;

    package Day09Homework02;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    
    public class ListDemo {
    	private List<Student> list=new ArrayList<Student>();
    	public void studentAdd(){
    		list.add(new Student("aa",18));
    		list.add(new Student("bb",19));
    		list.add(new Student("cc",14));
    	}
    	//编写代码实现使用姓名查找并打印学员(找不到要给与提示)
    	public void findByName(){
    		System.out.println("通过姓名查找");
    		Scanner input=new Scanner(System.in);
    		String inName=input.next();
    		for(int i=0;i<list.size();i++){
    			if(inName.equals(list.get(i).getName())){
    				System.out.println("name	age");
    				System.out.println(list.get(i));
    			}
    			System.out.println("没有找到");
    		}
    		input.close();
    	}
    	//编写代码实现使用姓名删除某个学员
    	public void delStudent(){
    		System.out.println("通过姓名查找要删除的学生信息");
    		Scanner input=new Scanner(System.in);
    		String inName=input.next();
    		for(int i=0;i<list.size();i++){
    			if(inName.equals(list.get(i).getName())){
    				list.remove(i);
    			}
    			else {
    				
    			}
    		}
    		input.close();
    	}
    
    	//编写代码实现根据名字修改学员
    	public void changeStudent(){
    		System.out.println("通过姓名查找要修改的学生信息:");
    		Scanner input=new Scanner(System.in);
    		String inName=input.next();
    		for(int i=0;i<list.size();i++){
    			if(inName.equals(list.get(i).getName())){
    				System.out.println("修改姓名:");
    				String cname=input.next();
    				list.get(i).setName(cname);
    				int cage=input.nextInt();
    				list.get(i).setAge(cage);
    			}
    			else {
    				
    			}
    		}
    		input.close();
    	}
    	//打印学生信息
    	public void printStu(){
    		for(Student stu:list){
    			System.out.println(stu);
    		}
    	}
    
    }
    

      

    (4)ArrayList类和LinkedList类:

           ArrayList内部结构是数组,跟适合添加,遍历,查找,索引(随机访问),不易进行更改内部操作。LinkedList内部结构是链表,更适合于频繁的中间删除,插入,提供更多方法供使用。

    (5)set接口和HashSet类,TreeSet类

           set里面的元素是不能重复烦人:hashset通过重写添加元素类模板的hashCode,equals方法来判断元素是否重复,无序集合,最多包含一个null元素,TreeSet需要根据类模板中的compareTo或构造器里的compare判断元素是否重复以及排序先后。

    (6)map接口和hashMap类,TreeMap类

           hashMap类是基于哈希表的Map接口实现,此类实现了map中的映射,并允许使用null值和null键,但必须保证键的唯一性,hashMap通过哈希码对其内部的映射关系进行快速查找。此类不保证映射的顺序。TreeMap类将键值对按照一定的顺序排列。因此不允许键对象是null

    (7)迭代器

    (8)list集合类排序,map集合类排序

  • 相关阅读:
    BZOJ 3252: 攻略(思路题)
    BZOJ 2821: 作诗(Poetize)(分块)
    BZOJ 2597: [Wc2007]剪刀石头布(费用流)
    BZOJ 1565: [NOI2009]植物大战僵尸(网络流+缩点)
    BZOJ 1927: [Sdoi2010]星际竞速(费用流)
    BZOJ 5120: [2017国家集训队测试]无限之环(费用流)
    洛谷 5205 【模板】多项式开根
    LOJ 2737 「JOISC 2016 Day 3」电报 ——思路+基环树DP
    LOJ 2736 「JOISC 2016 Day 3」回转寿司 ——堆+分块思路
    bzoj 2216 [Poi2011]Lightning Conductor——单调队列+二分处理决策单调性
  • 原文地址:https://www.cnblogs.com/deng-c-q/p/5082263.html
Copyright © 2020-2023  润新知