陈璇   发表于 2015-12-08 16:01:50

收藏 4521 23

【Java-高级特性】集合框架和泛型(下) 内容、素材及作业交流贴

【Java-高级特性】第3课:集合框架和泛型(下)

上课时间:每周一、三、四、五上午10:00-11:30

今日作业:

blob.png

课后请大家直接回复本帖,在此帖下提交自己作业/作品,发言交流学习心得,讲师、同学们也会在此给你点评或点赞哦。

课工场Java技术交流群:480105275

Ps:新人加群后请看群公告获得更多帮助

祝你学习进步!


课程回放链接://www.kgc.cn/java/16757.shtml

此帖被Ke游击队 于2018年04月12日 21:01 进行了推荐操作
全部回复共23条
电梯直达
我要回复
  • 心过 2015-12-09 12:30:16

    1楼

    image.png

    image.png

      陈璇 2015-12-09 14:46:07 1#0楼

      好,写的很好~~提交的也很快~~

      评论

  • 谢千 2015-12-09 12:42:58

    2楼

    package com.HashMap.Student;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    
    public class TextStudent {
    
    	/**应用泛型
    	 * 根据每个学员的英文名查看学员信息
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		//创建学生对象
    		Student stu1=new Student(1,"张三",'男');
    		Student stu2=new Student(2,"李四",'男');
    		Student stu3=new Student(6,"万五",'男');
    		Student stu4=new Student(10,"张静",'女');
    		Student stu5=new Student(12,"小兰",'女');
    		
    		//创建Map接口对象
    		Map<String,Student> maps=new HashMap<String,Student>();
    		
    		maps.put("tom", stu1);
    		maps.put("mone", stu2);
    		maps.put("swe", stu3);
    		maps.put("level", stu4);
    		maps.put("jies", stu5);
    		//使用键值Map.Enry类型查看集合中 的信息
    		System.out.println("n------键值Map.Enry类型查看集合中的信息--------");
    		Set<Map.Entry<String, Student>> keys=maps.entrySet();
    		for(Map.Entry<String, Student> me:keys){
    				String key=me.getKey();
    				Student value=me.getValue();
    			System.out.println(key+"t"+value.getNo()+"t"+value.getName()+"t"+value.getSex());
    		}
    		
    		//使用增强型for 查看集合中的信息
    		System.out.println("n------使用增强for查看集合中信息--------");
    		Set<String> set1 =  maps.keySet();
    		for(String str:set1){
    			Student stuValue =maps.get(str);
    			System.out.println(str+"t"+stuValue.getNo()+"t"+stuValue.getName()+"t"+stuValue.getSex());
    		}
    		
    		//使用Itreator查看集合中的信息
    		System.out.println("n------使用Itreator查看集合中的信息--------");
    		
    		Set<String> set2 =  maps.keySet();		//先取出键
    		Iterator<String> it =set2.iterator();			//定义一个Iterator迭代器
    		while (it.hasNext()) {
    			String str=	it.next();
    			Student stuValue=maps.get(str);
    			System.out.println(str+"t"+stuValue.getNo()+"t"+stuValue.getName()+"t"+stuValue.getSex());
    		}
    		
    		
    		Scanner input = new Scanner(System.in);
    		System.out.print("请输入你要查看学员的英文名:");
    		String keyName=input.next();
    		
    		Student stu=maps.get(keyName);
    		//判断集合是否包含你输入的键
    		if (maps.containsKey(keyName)) {		
    			System.out.println("学员学号:"+stu.getNo()+"n学员姓名:"+stu.getName()+"n学员性别:"+stu.getSex());
    		}else {
    			System.out.println("对不起!不存在改学员!");
    		}
    		
    		
    		
    	}
    
    }

    blob.png

      陈璇 2015-12-09 14:46:38 1#0楼

      恩,写的很好,加油~

      评论

  • 晴空000 2015-12-09 12:50:37

    3楼

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    public class Main
    {
     public static void main(String[] str)
     {
      Map<String,Student> m1=new HashMap<String,Student>();
      m1.put("Jack",new Student(4,"捷克","男"));
      m1.put("Green",new Student(6,"格林","男"));
      m1.put("Tom",new Student(2,"汤姆","男"));
      m1.put("Lily",new Student(3,"丽丽","女"));
      System.out.println("输出所有学员---------------------------------");
      Set<Map.Entry<String, Student>> enset= m1.entrySet();
      for(Map.Entry<String, Student> stu : enset)
      {
       System.out.println("英文名是"+stu.getKey()+"中文名是"+stu.getValue());
      }
      System.out.println("查找学员信息--------------------");
      Scanner sc=new Scanner(System.in);
      System.out.print("请输入你要查找的学员英文名:");
      String name=sc.next();
      if(m1.containsKey(name))
      {
       Student stu=m1.get(name);
       System.out.println("当前学员是"+stu.number+"-"+stu.name+"-"+stu.sex);
      }
      else
      {
       System.out.println("没有该学员");
      }
      System.out.println("把所有学员转存list集合------------------");
      ArrayList<Student> al =new ArrayList<Student>();
      al.addAll(m1.values());
      System.out.println("对所有学员以学号进行排序------------------------");
      Collections.sort(al);
      System.out.println("输出排序后的学员---------------");
      for(Student stu : al)
      {
       System.out.println(stu.number+"-"+stu.name+"-"+stu.sex);
      }
     }
    }
    class Student implements Comparable<Student>
    {
     public Student(int number,String name,String sex)
     {
      this.number=number;
      this.name=name;
      this.sex=sex;
     }
     public int compareTo(Student o) {
      int x=0;
      if (this.number>o.number) x=1;
      else if (this.number<o.number) x=-1;
      return x;
     }
     public String toString() {
      return name;
     }
     public int number;
     public String name;
     public String sex;
    }

     输出所有学员---------------------------------
    英文名是Lily中文名是丽丽
    英文名是Jack中文名是捷克
    英文名是Tom中文名是汤姆
    英文名是Green中文名是格林
    查找学员信息---------------------------------
    请输入你要查找的学员英文名:Lily
    当前学员是3-丽丽-女
    把所有学员转存list集合------------------------------------
    对所有学员以学号进行排序------------------------------------
    输出排序后的学员------------------------------------
    2-汤姆-男
    3-丽丽-女
    4-捷克-男
    6-格林-男

      陈璇 2015-12-09 14:47:05 1#0楼

      你是合在一起写了啊,很好~

      评论

  • 谢千 2015-12-09 13:16:45

    4楼

    package com.collections;
    /**
     * 学生类
     * 
     * 实现接口 Comparable
     * 比较此对象与指定对象的顺序
     * @author xieqian
     *
     */
    public class Student implements Comparable {
    	private int no;			//学号
    	private String name;	//姓名
    	private char sex;		//性别
    	
    	public Student(){
    		
    	}
    	
    	public Student(int no, String name, char sex) {
    		this.no = no;
    		this.name = name;
    		this.sex = sex;
    	}
    	public int getNo() {
    		return no;
    	}
    	public void setNo(int no) {
    		this.no = no;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public char getSex() {
    		return sex;
    	}
    	public void setSex(char sex) {
    		this.sex = sex;
    	}
    
    	//重写compareTo的方法 比较此对象与指定对象的顺序
    	public int compareTo(Object o) {
    		Student stu=(Student)o;				//转换为学生对象
    		if (this.no==stu.getNo()) {		//如果相等返回0
    			return 0;
    		}else if (this.no > stu.getNo()) {		//如果当前的学号大于学生对象的学号,返回1
    			return 1;  
    		}else {			//如果当前的学号小于学生对象的学号,返回-1
    			return -1;
    		}
    		
    	}
    	
    }
    package com.collections;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class TextCollection {
    
    	/**
    	 * 测试Collections 常用方法
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		
    		List<Student> list=new ArrayList<Student>();
    		
    		//创建多个学生
    		Student stu1 =new Student(1,"张胜",'男');
    		Student stu2 =new Student(5,"李四",'女');
    		Student stu3 =new Student(6,"万无",'男');
    		Student stu4 =new Student(3,"爱留",'女');
    		Student stu5 =new Student(2,"李胜",'男');
    		
    		//添加学生对象
    		list.add(stu1);
    		list.add(stu2);
    		list.add(stu3);
    		list.add(stu4);
    		list.add(stu5);
    		
    		//排序
    		Collections.sort(list);
    		System.out.println("根据学号大小打印输出排序后如下:");
    		for(Student stu:list){
    			System.out.println(stu.getNo()+"t"+stu.getName()+"t"+stu.getSex());
    		}
    		
    		
    		List<String> list1=new ArrayList<String>();
    		list1.add("zoo");
    		list1.add("animl");
    		list1.add("fruit");
    		list1.add("puo");
    		list1.add("lei");
    		list1.add("love");
    		list1.add("asc");
    		
    		//打印集合中最大值和最小值
    		System.out.println("n打印集合中最大值和最小值:");
    		String strMax=(String)Collections.max(list1);
    		String strMin=(String)Collections.min(list1);
    		System.out.println(strMax+"t"+strMin);
    		
    		//升序排序
    		System.out.println("n升序排序后:");
    		Collections.sort(list1);
    		for(String str:list1)
    		System.out.println(str);
    		//查找
    		System.out.println("n查找后的结果:");
    		System.out.println(Collections.binarySearch(list1, "love"));
    		
    		//反转
    		System.out.println("n反转后:");
    		Collections.reverse(list);
    		for(String str:list1){
    			System.out.println(str);
    		}
    	}
    
    }

    blob.png

    blob.png


    之前忘记了 我补上了 老师

  • ⌒_⌒ 2015-12-10 00:12:02

    5楼

    应国家法规要求,由于该用户未绑定手机号,故此信息暂无法显示

  • 周加伟320 2015-12-10 01:31:30

    6楼

    package com.kgc.jihe1;


    public class Student {

    private String name;

    private String sex;

    public Student(){};

    public Student(String name, String sex) {

    super();

    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;

    }

    }

    package com.kgc.jihe1;

    import java.util.HashMap;

    import java.util.Map;

    import java.util.Scanner;

    public class Test {

        public static void main(String[] args) {

    Map<String,Student> students=new HashMap<String,Student>();

    Student s1=new Student("张三1","男");

    Student s2=new Student("张三2","男");

    Student s3=new Student("张三3","男");

    Student s4=new Student("张三4","女");

    students.put("jack", s1);

    students.put("luce", s2);

    students.put("tom", s3);

    students.put("rose", s4);

    Scanner input=new Scanner(System.in);

    System.out.print("请输入您要查询的学员英文名:");

    String key=input.next();

    if (students.containsKey(key)){

    Student stu=students.get(key);

    System.out.println("您找的学员是:"+stu.getName()+"-"+stu.getSex());

    }else{

    System.out.println("没有找到你输入的学员");

    }

    }

    }

    blob.png

      陈璇 2015-12-10 08:50:40 1#0楼

      很好,写的很好哦~

      评论

  • 云万里 2015-12-16 23:45:24

    7楼

    package com.kgc.jbit.stu;

    //学生类

    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;

    }


    }

    package com.kgc.jbit.stu;

    import java.util.HashMap;


    import java.util.Map;

    import java.util.Scanner;

    //测试类,用泛型解决

    public class Test {

    public static void main(String[] args) {

    Map<String, Student> students = new HashMap<String, Student>();

    //

    students.put("jack", new Student("张三","男"));

    students.put("tom", new Student("李四","男"));

    students.put("lili", new Student("王五","女"));

    //根据特定key获取相应的value

    Scanner input = new Scanner(System.in);

    System.out.println("请输入学员英文名:");

    String key = input.next();

    if(students.containsKey(key)){

    Student stu =(Student)students.get(key);

    System.out.println("学员的中文姓名:"+stu.getName()+";学员的性别:"+stu.getSex());

    }else{

    System.out.println("未找到你要的学员!");

    }

    }


    }


      风豆豆 2016-01-18 16:33:27 1#0楼

      应国家法规要求,由于该用户未绑定手机号,故此信息暂无法显示

      评论

    • 做你敢做的 2016-06-22 15:41:17 1#1楼

      应国家法规要求,由于该用户未绑定手机号,故此信息暂无法显示

      评论

  • njwhd 2016-03-28 21:50:57

    9楼

    package cn.jbit.stu;
    
    // 学员类
    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;
    	}
    }
    
    package cn.jbit.stu;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    
    public class Test {
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		Map<String, Student> students = new HashMap<String, Student>();
    		Student stu1 = new Student("张三", "男");
    		Student stu2 = new Student("李四", "男");
    		Student stu3 = new Student("王五", "女");
    		// 键-值对:学员的英文名字-学员的中文名字
    		students.put("jack", stu1);
    		students.put("tom", stu2);
    		students.put("kitty", stu3);
    		
    		// 根据特定key获取相应value
    		System.out.print("请输入您要寻找的学员英文名:");
    		String key = input.next();
    		// 先判断Map中是否包含有key
    		if ( students.containsKey(key)) {
    			Student stu = students.get(key);
    			System.out.println("您要找的学员是:" + stu.getName() + " - " + stu.getSex());
    		} else {
    			System.out.println("对不起,没有您要寻找的学员!");
    		}
    	}
    }

    blob.png

  • 陈炎华 2016-05-04 22:19:27

    10楼

    应国家法规要求,由于该用户未绑定手机号,故此信息暂无法显示

  • 风云会 2016-07-25 15:59:42

    11楼

    package cn.jbit.stu;


    import java.util.HashMap;

    import java.util.Map;

    import java.util.Scanner;


    public class Test {

    public static void main(String[] args) {

    Map<String,Student> students = new HashMap<String,Student>();

    Student s1 = new Student("李明","男");

    Student s2 = new Student("张亮","男");

    Student s3 = new Student("王英","女");

    //键-值对:学员的英语名字-学员

    students.put("jack", s1);

    students.put("tom", s2);

    students.put("kitty", s3);

    //根据特定key获取相应value

    Scanner input = new Scanner(System.in);

    System.out.print("请输入您要寻找的学员英文名:");

    String key = input.next();

    if(students.containsKey(key)){

    Student stu = students.get(key);

    System.out.println(key+"对应的学员姓名是:"+stu.getName()+";"+"性别是:"+stu.getSex());

    }else{

    System.out.println("对不起,没有您要寻找的学员!");

    }

    }

    }


  • fuqiadds 2016-09-28 00:03:00

    12楼

    应国家法规要求,由于该用户未绑定手机号,故此信息暂无法显示

  • RANBO 2016-10-03 13:28:12

    13楼

    //学生类

    public class Student {

    //属性:姓名、性别

    private String name;

    private String 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;

    }

    //构造方法

    public Student(){}

    public Student(String name, String sex) {

    this.name = name;

    this.sex = sex;

    }

    }

    import java.util.*;

    //测试类

    public class TestStudent {

    public static void main(String[] args) {

    Scanner input=new Scanner(System.in);

    //创建一个Map集合,集合名为students

    Map<String,Student> students=new HashMap<String,Student>();

    //键值对:学员的英文名字————学员对象

    students.put("jack",new Student("张三","男"));

    students.put("tome",new Student("李四","男"));

    students.put("rose",new Student("王五","女"));

    System.out.println("————————————————————————————————————————————————————");

    //遍历学员信息

    //(1)增强型for循环:先拿到map中的键值对,然后再在每个键值对中分别取出来键和值

    Set<Map.Entry<String,Student>> kvps=students.entrySet();//获得键值对的集合

    for(Map.Entry<String,Student> kvp:kvps){

    String engName=(String)kvp.getKey();

    String name=((Student)kvp.getValue()).getName();

    String sex=((Student)kvp.getValue()).getSex();

    System.out.println("英文名:"+engName+"————中文名:"+name+"—————性别:"+sex);

    }

    System.out.println("————————————————————————————————————————————————————");

    //(2)增强型for循环:先拿到map中的键集,然后再根据键,得到对应值

    Set<String> keys=students.keySet();

    for(String key:keys){

    System.out.println("英文名:"+key+"————中文名:"+(students.get(key)).getName()+"—————性别:"+(students.get(key)).getSex());

    }

    System.out.println("————————————————————————————————————————————————————");

    //(3)用iterator:先获得键集的迭代器itor

    Iterator<String> itor=keys.iterator();

    while(itor.hasNext()){

    String key=itor.next();

    System.out.println("英文名:"+key+"————中文名:"+(students.get(key)).getName()+"—————性别:"+(students.get(key)).getSex());

    }

    System.out.println("————————————————————————————————————————————————————");

    //根据特定的key获取相应的value

    System.out.print("请输入你要寻找的学员的英文名字:");

    String key=input.next();

    System.out.println("————————————————————————————————————————————————————");

    if(students.containsKey(key)){

    Student stu=students.get(key);

    System.out.println("你要找的学员是:"+stu.getName()+"————"+stu.getSex());

    }else{

    System.out.println("对不起,没有找到相关学员!");

    }

    }

    }

    360反馈意见截图16770811537454.png

  • longbokey 2016-10-25 11:16:12

    14楼

    //学生类
    public class Student {
    	private String name;
    	private String sex;
    	public Student() {}
    	public Student(String name, String sex) {
    		super();
    		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;
    	}
    }
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    //学生管理类
    public class StudentMgr {
    	public static void main(String[] args) {
    		Map<String, Student> students = new HashMap<String, Student>();
    		//键-值对:学员的英文名字-学员
    		students.put("Jack", new Student("张三","男"));
    		students.put("Tom", new Student("李四","男"));
    		students.put("Kitty", new Student("王五","女"));
    		//根据特定的key获取相应的值
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入您要寻找的学员英文名:");
    		String key = input.next();
    		if(students.containsKey(key)){
    			Student stu = students.get(key);
    			System.out.println("你要找的学员是:"+stu.getName()+"-"+stu.getSex());
    		}else{
    			System.out.println("对不起!没有您要查找的学员信息!");
    		}
    		input.close();
    	}
    
    }


  • 信仰0901 2016-11-15 15:29:00

    15楼

    public class Map作业 {
     public static void main(String[] args) {
      Map<String,Student> students = new HashMap<String,Student>();
      //键-值对: 学员的英文名字-学员
      students.put("jack", new Student("龚林志","男"));
      students.put("tom", new Student("张三","女"));
      students.put("kitty", new Student("王五","男"));

      //根据特定的key获取相应的value
      Scanner input = new Scanner(System.in);
      System.out.println("请输入您要寻找的学员英文名:");
      String key = input.next();
      if(students.containsKey(key)){
       Student stu = students.get(key);
       System.out.println("您要找的学员是:"+stu.getName()+"-"+stu.getSex());
      }else{
       System.out.println("没有找到您想找的学员!");
      }
     }
    }


加载中...
关闭
关闭
在线
咨询
QQ
交流群
App
下载
返回
顶部