zoukankan      html  css  js  c++  java
  • 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;
    	}
    	
    	
    }
    

      结果示例:

     

  • 相关阅读:
    1105 Spiral Matrix (25分)(蛇形填数)
    1104 Sum of Number Segments (20分)(long double)
    1026 Table Tennis (30分)(模拟)
    1091 Acute Stroke (30分)(bfs,连通块个数统计)
    1095 Cars on Campus (30分)(排序)
    1098 Insertion or Heap Sort (25分)(堆排序和插入排序)
    堆以及堆排序详解
    1089 Insert or Merge (25分)
    1088 Rational Arithmetic (20分)(模拟)
    1086 Tree Traversals Again (25分)(树的重构与遍历)
  • 原文地址:https://www.cnblogs.com/chenxj/p/10409120.html
Copyright © 2011-2022 走看看