会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132883个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 2207楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2208楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 2209楼

1、Users源码

import java.util.Objects;

/***
 * 自定义类
 */
public class Users implements Comparable<Users>{
    private String userName;
    private int UserAge;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getUserAge() {
        return UserAge;
    }

    public void setUserAge(int userAge) {
        UserAge = userAge;
    }

    /***
     * 自定义类
     * @param userName  姓名
     * @param userAge   年龄
     */
    public Users(String userName, int userAge) {
        this.userName = userName;
        UserAge = userAge;
    }

    /***
     * 自定义类
     */
    public Users() {
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Users users = (Users) o;
        return UserAge == users.UserAge &&
                Objects.equals(userName, users.userName);
    }

//    @Override
//    public String toString() {
//        return "Users{" +
//                "userName='" + userName + '\'' +
//                ", UserAge=" + UserAge +
//                '}';
//    }

    @Override
    public int hashCode() {
        return Objects.hash(userName, UserAge);
    }

    //定义比较规则
    @Override
    public int compareTo(Users o) {
        //年龄排序
        if(this.UserAge > o.UserAge)
            return 1;
        //年龄相同姓名比较
        if(this.UserAge == o.UserAge)
            return this.userName.compareTo(o.getUserName());
        return 0;
    }
}

2、TreeMapTest源代码

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class TreeMapTest {
    public static void main(String[] args) {
        //实例化TreeMap
        Map<Users,String> tree = new TreeMap<>();

        //实例化Users
        Users u1 = new Users("张三",15);
        Users u2 = new Users("王五",23);
        Users u3 = new Users("陈述",63);

        tree.put(u1,"无法言语");
        tree.put(u2,"难过");
        tree.put(u3,"绝对");

        Set<Users> keys = tree.keySet();
        for(Users i : keys)
            System.out.println(i + "--------" + tree.get(i));
    }
}

3、结果运行图

 1)不注释toString

image.png

 2)注释toString

image.png

这是什么情况?为什么会出现这种情况?

而且单纯修改一下比较规则还会出现新问题

4、修改截图

image.png

5、运行截图

image.png

其他两个就没有了?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2210楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2211楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 2213楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 2214楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 2218楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2219楼

老师,为什么我的情况是返回一个文件

package com.bjsxt.server;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;


public class Server2 {
	public static void main(String[] args) {
		//(1)创建ServerSocket对象
		String CRLF="\r\n";//换行
		String BLANK=" ";
		ServerSocket server=null;
		//(2)监听是否有客户端发送请求
		Socket client=null;
		InputStream is=null;
		BufferedReader br=null;
		try {
			server = new ServerSocket(9999);
			client = server.accept();
			is=client.getInputStream();
			byte [] buf=new byte[20480];
			int len=is.read(buf);
			System.out.println(new String(buf,0,len));
			//对web浏览器的请求作出响应
			StringBuilder sb=new StringBuilder();
			StringBuilder sbContent=new StringBuilder();
			sbContent.append("<html><head><title>响应结果</title></head>");
			sbContent.append("<body>登陆成功</body></html>");
			sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("OK");
			sb.append(CRLF);
			sb.append("Content-Type: test/html;charset=utf-8");
			sb.append(CRLF);
			sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF) ;
			sb.append(CRLF);
			sb.append(sbContent);
			
			BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
			bw.write(sb.toString());
			bw.flush();
			bw.close();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//(6)关闭流
			IOClose.closeAll(br,client,server);
		}
		
	}
}

image.png

如上图所示,返回了左下角的下载文件


JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 2220楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637