小编Pat*_*ker的帖子

为什么Java Vector(和Stack)类被认为已过时或已弃用?

为什么Java Vector被认为是遗留类,已过时或已弃用?

在使用并发时,它的使用是否有效?

如果我不想手动同步对象而只想使用线程安全的集合而不需要制作底层数组的新副本(就像CopyOnWriteArrayList那样),那么它可以使用Vector吗?

怎么样Stack,这是一个子类Vector,我应该怎么用,而不是它?

java stack vector deprecated obsolete

661
推荐指数
5
解决办法
22万
查看次数

如何在Java中反转int数组?

我试图在Java中反转一个int数组.

此方法不会反转数组.

for(int i = 0; i < validData.length; i++)
{
    int temp = validData[i];
    validData[i] = validData[validData.length - i - 1];
    validData[validData.length - i - 1] = temp;
}
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

java arrays idioms idiomatic

224
推荐指数
14
解决办法
51万
查看次数

"map"类型的对象在Python 3中没有len()

我有Python 3的问题.我得到了Python 2.7代码,目前我正在尝试更新它.我收到错误:

TypeError:'map'类型的对象没有len()

在这一部分:

str(len(seed_candidates))
Run Code Online (Sandbox Code Playgroud)

在我像这样初始化之前:

seed_candidates = map(modify_word, wordlist)
Run Code Online (Sandbox Code Playgroud)

那么,有人可以解释一下我必须做什么吗?

(编辑:以前这个代码示例是错误的,因为它使用set而不是map.它现在已经更新.)

python variable-length python-3.x

36
推荐指数
2
解决办法
3万
查看次数

使用`\ R`进行Java-8正则表达式负向观察

回答另一个问题时,我写了一个正则表达式来匹配所有空格,最多包括一个换行符.我使用负面的lookbehind为\Rlinebreak matcher 做了这个:

((?<!\R)\s)*
Run Code Online (Sandbox Code Playgroud)

之后我正在思考它,我说,哦,不,如果有一个\r\n?当然它会抓住第一个破线的角色\r,然后我会\n在下一个弦的前面陷入虚假,对吗?

所以我回去测试(并且可能修复)它.但是,当我测试模式时,它匹配整个模式\r\n.它与人们可能期望的\r离开不匹配\n.

"\r\n".matches("((?<!\\R)\\s)*"); // true, expected false
Run Code Online (Sandbox Code Playgroud)

然而,当我使用中提到的"等价物"模式文档\R,它返回false.这是Java的一个错误,还是它有匹配的正当理由?

java regex java-8 regex-lookarounds

6
推荐指数
2
解决办法
558
查看次数

如何分离业务逻辑和指标日志?

在许多应用程序中,我们需要记录统计数据指标,例如历史记录,指标等。这将污染业务逻辑。例如:

boolean buy(int id) {
  metrics.increament(); // for qps maybe.. 
  int remain = checkRemain();
  metrics.hist(remain); // log remain amount..
  if (remain > 0)
    return true;
  else
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我希望我只能写下biz逻辑,例如:

boolean buy(int id) {
  int remain = checkRemain();
  if (remain > 0)
    return true;
  else
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但是我也可以获得指标。

我的问题是:分离业务逻辑和指标日志的最佳实践是什么?

我知道面向方面的编程可以解决这个问题,我还有其他选择吗?

java spring design-patterns

5
推荐指数
1
解决办法
105
查看次数

为什么使用 Deque 而不是内置 Stack&lt;&gt;?

Java文档说,Stack最好从 a 创建 a Deque,而不是使用 quintessential Stack<>。不幸的是,它没有强调为什么会这样

双端队列也可以用作 LIFO(后进先出)堆栈。应优先使用此接口而不是旧版 Stack 类。当双端队列用作堆栈时,元素从双端队列的开头推送和弹出。

有人可以指出为什么会这样吗?同样,是否还有其他情况我们应该避免使用内置Collections对象?我是一名转向 Java 的 C++ 开发人员,因此任何此类微妙的指针都会有所帮助。

谢谢。

java collections stack deprecated obsolete

3
推荐指数
1
解决办法
2170
查看次数

Java 8:根据对象属性从列表中迭代和分组对象

我有一个列表(GlobalBooks),看起来类似于下面

import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        GlobalBooks globalBooks = new GlobalBooks();

        List<Book> bookList  = new ArrayList<Book>();


        Book book = new Book();
        List<BookContent> bookContents = new ArrayList<BookContent>();

        book.setBookName("A");
        BookContent content = new BookContent();
        content.setDescription("December 2016");
        content.setComponentID(20l);
        bookContents.add(content);

        content = new BookContent();
        content.setDescription("January 2016");
        content.setComponentID(30l);
        bookContents.add(content);

        content = new BookContent();
        content.setDescription("Febuary 2016");
        content.setComponentID(40l);
        bookContents.add(content);
        book.setContents(bookContents);

        bookList.add(book);


        book = new Book();
        bookContents = new ArrayList<BookContent>();

        book.setBookName("B");
        content = new BookContent();
        content.setDescription("December 2016");
        content.setComponentID(20l);
        bookContents.add(content); …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

2
推荐指数
1
解决办法
1978
查看次数

尝试使用python 3加载JSON对象时出错

我有以下要使用python 3解析的json对象:

customerData = {   
 "Joe": {"visits": 1},  
 "Carol":  {"visits": 2},  
 "Howard": {"visits": 3},  
 "Carrie": {"visits": 4}  
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下python代码来解析对象:

import json 

def greetCustomer(customerData):
    response = json.loads(customerData)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError:JSON对象必须是str,bytes或bytearray,而不是'dict'

python json

0
推荐指数
2
解决办法
5353
查看次数