• 2019-2-22


    一、集合框架

      如果不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,可以使用JAVA集合框架 

    二、JAVA集合框架提供了一套性能优良、使用方便的接口和类,它们位于JAVA.UTIL包中

      1、Iterator:迭代器

      2、Collection:集合框架接口

      3、Map:集合框架接口

      4、List与Set:Collection的子接口

      5、ArrayList与LinkedList为List的实现类

      6、HashSet与TreeSet为Set的实现类

      7、HashMap与TreeMap为Map的实现类

      8、Collections与Arrays:算法

          

          

     三、JAVA集合框架包含的内容

      Collection:接口存储一组不唯一,无序的对象

      List:接口存储不唯一,有序的对象

      Set:接口存储唯一,无序的对象

      Map:接口存储一组键值对象,提供kdy到value的映射

            

     四、List接口的实现类

      1、ArrayList实现长度可变的数组,在内存中分配连续的空间。遍历元素和随访问元素的效率比较高

      2、LinkedList采用链表存储方式。插入、删除元素进效率比较高

      3、遍历ArrayList的方法:1)、普通for循环;2)、增强for循环;3)、迭代器

      4、遍历LinkedList的方法:1)、普通for循环;2)、增强for循环;3)、迭代器

      5、遍历Set的方法:1)、增强for循环;2)、迭代器;3)集合.foreach(System.out::println);

         

      

        

       

       

       

     五、Set接口存储一组唯一,无序的对象

      HashSet是Set的实现类

      Set存储对象的引用

    六、Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作,最常用的实现类的HashMap

      Hashtable键不可为空,Hashmap键可以为空;

      1、Map接口常用方法

    ·  

      2、Map集合遍历

      方法1:通过迭代器Iterator实现遍历

      方法2:增强型for循环

      方法3:键值对

     作业:

    package com.java_student;
    /**
     * 2019-2-22
     */
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    
    public class StuTest {
    	public static void main(String[] args) {
    		Scanner cxj = new Scanner(System.in);
    		Student stu1 = new Student("陈历","男");
    		Student stu2 = new Student("吴蕊","女");
    		Student stu3 = new Student("吴燕婷","女");
    		Student stu4 = new Student("刘金","男");
    		
    		Map<String, Student> m = new HashMap<String, Student>();
    		
    		m.put("CL", stu1);
    		m.put("WL", stu2);
    		m.put("WYT", stu3);
    		m.put("LJ", stu4);
    		
    		System.out.println(m.remove("CL"));//通过键删除,返回值
    		
    		System.out.println(m.remove("WL", stu2));//通过键值删除
    		
    		//遍历所有键与值
    		Set<String> set1 = m.keySet();
    		for(String str : set1) {
    			System.out.print("学员的简称:"+str+"	");
    			System.out.println(m.get(str));
    		}
    		
    		System.out.println(m.containsKey("WL"));//判断是否存在键为"WL"的值
    		System.out.println(m.containsValue(stu2));//判断是否存在值为"stu2"
    		
    		//遍历所有值
    		Collection<Student> co = m.values();
    		for(Student stu : co) {
    			System.out.println(stu);
    		}
    		
    		//遍历所有键
    		Set<String> set = m.keySet();
    		for(String str : set) {
    			System.out.println("各个学员的简称:"+str);
    		}
    		
    		//查询是否有输入的的键的值
    		System.out.print("请输入要查询的学员英文简称:");
    		String t = cxj.next();
    		if(m.containsKey(t)) {
    			System.out.println(t+"对应的性名是学员"+m.get(t).getName()+",性别是:"+m.get(t).getSex());
    		}else {
    			System.out.println("无此学员!");
    		}
    		
    	}
    }
    

      

    package com.java_student;
    /**
     * 学员类
     * @author Administrator
     *
     */
    public class Student {
    	private String name;//学员姓名
    	private String sex;//学员性别
    	
    	public Student() {}
    	
    	public Student(String name, String sex) {
    		this.name = name;
    		this.sex = sex;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    
    	@Override
    	public String toString() {
    		return "学员:" + name + "	性别:" + sex;
    	}
    	
    	
    }
    

      结果示例:

     

  • 相关阅读:
    策略模式
    Java反射机制
    两个无符号的正大数相加
    MySQL大表优化方案
    造成mysql慢查询的原因
    mysql对于很长的字符列的索引方案
    lyt经典版MySQL基础——函数
    lyt经典版MySQL基础——存储过程
    lyt经典版MySQL基础——变量
    lyt经典版MySQL基础——视图
  • 原文地址:https://www.cnblogs.com/chenxj/p/10409120.html
Copyright © 2020-2023  润新知