java集合详解
目 录
1 集合框架... 2
1.1 集合框架概述... 2
1.1.1 容器简介... 2
1.1.2 容器的分类... 4
1.2 Collection. 5
1.2.1 常用方法... 5
1.2.2 迭代器... 8
1.3 List. 10
1.3.1 常用方法... 10
1.3.2 实现原理... 15
1.4 Map. 20
1.4.1 常用方法... 20
1.4.2 Comparable 接口... 25
1.4.3 实现原理... 26
1.4.4 覆写hashCode() 32
1.5 Set. 35
1.5.1 常用方法... 35
1.5.2 实现原理... 39
1.6 总结:集合框架中常用类比较... 41
2 练习... 42
3 附录:排序... 43
集合
1 集合框架
1.1 集合框架概述
1.1.1 容器简介
到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一些有意义的事情。
举例来说,假设要存储许多雇员,不同的雇员的区别仅在于雇员的身份证号。我们可以通过身份证号来顺序存储每个雇员,但是在内存中实现呢?是不是要准备足够的内存来存储1000个雇员,然后再将这些雇员逐一插入?如果已经插入了500条记录,这时需要插入一个身份证号较低的新雇员,该怎么办呢?是在内存中将500条记录全部下移后,再从开头插入新的记录? 还是创建一个映射来记住每个对象的位置?当决定如何存储对象的集合时,必须考虑如下问题。
对于对象集合,必须执行的操作主要以下三种:
u 添加新的对象
相关文档:
通常通过request.getRemoteAddr()
取得客户端的IP地址,做鉴权和校验,逻辑没问题,那么肯定request.getRemoteAddr()出了问题,google下,发现有人遇到类似的问题。
最终定位为request.getRemoteAddr()这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
......
package homework02;
import java.util.Scanner;
/*
* 编写两个类:A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的
* 对象可以计算两个数的最小公倍数。要求:类B中有一个成员变量时用类A的声明对象。
*/
public class A {
private int m;
private int n;
public A(){
this.intput();
......
今天遇到一个很诡异的bug,调试了半天也没有看出来有什么问题,抽象一下代码如下:
public class Instance
{
public static Instance instance = new Instance();
public static Map<String, String> map = new HashMap<String, String>();
public static Instance instance()
{
r ......
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
Categories of Java HotSpot VM Options
Standard options recognized by the Java HotSpot VM are described on the Java Application Launcher reference pages for Windows
, Solaris
and Linux
. This document deals exclusively wit ......
public class Regex {
/**
* 检查email输入是否正确
* 正确的书写格式为 username@domain
* @param value
* @return
*/
public boolean checkEmail(String value, int length) {
return value.matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)* ......