假设我们有一堆Car对象.
每辆车都有一些与众不同的特性,例如制造商,型号,年份等(这些可用于创建不同的hashCodes).
每辆车都有一个PurchaseOffer对象列表(PurchaseOffer对象包含定价\零售商信息).
我们收到来自几个不同来源的汽车列表,每辆汽车都有一个PurchaseOffer.事实是,这些列表可能重叠 - 一辆车可以出现在多个列表中.
我们希望将列表汇总到一个汽车集合中,其中每辆汽车都拥有所有遇到的PurchaseOffers.
我的问题是选择要在此聚合过程中使用的集合:
感觉很自然地使用java.util.HashSet来保存我们的汽车,这样当经过不同的汽车列表时,我们可以检查汽车是否已经存在于已分配的O(1)中,但是 - 你无法检索一个元素从一个Set(在我们的例子中 - 当我们遇到一个已经存在于Set中的Car时 - 我们希望基于其标识hashCode从Set中检索该Car并向其添加PurchaseOffers).
我可以使用HashMap,其中每个Car的hashCode映射到实际的Car对象,但它可能不是学校书籍解决方案,因为它不安全 - 我必须确保自己每个hashCode映射到具有该hashCode的Car - 可能存在不一致.当然,可以制作一个保证这种一致性的指定数据结构 - 不应该已经存在吗?
任何人都可以建议我追求的数据结构,或指出设计错误?谢谢.
我想HttpServletResponse
在其内容(通常是HTML)呈现之后添加cookie .
正如这里所提到的(http://osdir.com/ml/java.jasig.uportal/2005-10/msg00276.html),这里(在刷新标题后,在Java中为响应添加一个cookie?),这个可以通过缓冲响应来实现它不会被刷新并发送到客户端(因为在将报头发送到客户端之后,响应被提交,并且不再有标头,即cookie头,可以发送到客户端).
假设这是目前的目标:我认为实现这一目标的一种可能方法是使用a HttpServletResponseWrapper
,我可以覆盖它的flushBuffer()
方法并防止将header\content实际刷新到客户端:
public class BufferedHttpServletResponse extends HttpServletResponseWrapper {
public BufferedHttpServletResponse(HttpServletResponse response) {
super(response);
}
public void flushBuffer() {
}
}
Run Code Online (Sandbox Code Playgroud)
并将此缓冲响应应用于a Filter
,以使用过滤器链的其余部分:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
BufferedHttpServletResponse bufferedResponse = new BufferedHttpServletResponse(response);
chain.doFilter(request, bufferedResponse);
// ... create Cookie and add it to response ... response.addCookie(newCookie)
// response.flushBuffer() ?
}
Run Code Online (Sandbox Code Playgroud)
问题:上面还可以,还是完全关闭?响应的缓冲区是否会继续填充内容\标题(并且可能会重新调整大小)直到我 …
这是为了学校,如果你知道你的XPath并且不介意告诉我我是否正确:
1.
//a[/b]/a
每个'a'在树中有一个父'a',其中根是'b'.(该位置[/b]
无关紧要?即上述等价于//a/a[/b]
?
2.
//*[//a]//a[/a][a]
从左到右分解:
//*[//a]
意味着所有元素都有一个后代'a',因此//*[//a]//a
(相当学校)是指所有'a'元素.并且//*[//a]//a[/a]
表示树中所有'a'元素,其中根是'a',最后 - //*[//a]//a[/a][a]
表示树中所有'a'元素,其中根是'a',其中有一个子'a'.
感谢您的帮助,似乎无法在任何地方获得直接答案.
我正在尝试使用Joda-Time来了解两个时间点之间的持续时间,其中每个点都在其自己的本地时区中给出.
例如:
DateTime ny = new DateTime(2011, 2, 2, 7, 0, 0, 0, DateTimeZone.forID("America/New_York"));
DateTime la = new DateTime(2011, 2, 3, 10, 15, 0, 0, DateTimeZone.forID("America/Los_Angeles"));
DateTime utc1 = ny.withZone(DateTimeZone.UTC);
DateTime utc2 = la.withZone(DateTimeZone.UTC);
Period period = new Period(utc1, utc2);
Run Code Online (Sandbox Code Playgroud)
现在,我想知道这是否考虑到日光节省和闰年...而且,使用'Period'是正确的Joda-Time方式来实现这一目标吗?谢谢 ;)