小编Pop*_*orn的帖子

得到第i位 - 是%还是更快?

我想知道以下哪一个更快获得整数x的第i位,其中我从0开始:

x & (1 << i)
x >> i % 2
Run Code Online (Sandbox Code Playgroud)

也很好奇为什么一个更快.

谢谢!

math performance assembly bit-manipulation bit

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

Java:如何将带月份名称的字符串转换为DateTime?

我已经看到了答案,让我在格式化时转换

"14/02/1952 14:52:22"

通过使用DateTimeFormatter

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(string);
Run Code Online (Sandbox Code Playgroud)

如何将相同的想法应用于此格式的字符串:

"Sunday, September 29, 2013 7:59:58 AM PDT"

我在尝试

DateTimeFormatter formatter = DateTimeFormat.forPattern"EEEE, MMMM dd, yyyy h:mm:ss a zzz";
DateTime dt = formatter.parseDateTime(string);
Run Code Online (Sandbox Code Playgroud)

但它抱怨这个.

java datetime parsing date datetime-format

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

Java:如何在一个类中创建一个私有字段Map不可变?

public class Hi {
    private final Map<String, String> map;
    public Map<String, String> getMap() {
        return map;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有这个Hi类,我希望map是不可变的.我还需要一个吸气剂.目前,另一个类可以从getter修改映射.我想返回一个地图副本来解决这个问题,但Map是一个接口,所以这是否意味着我必须进行getter调用:

return new HashMap<String,String>(map);
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点,而不强制地图是一个哈希映射?我希望它能像以前一样保持同一级别.

java reference object immutability getter-setter

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

objC检查空字符串,isEqualToString:@""vs长度

我有一个字符串

NSString hi;
Run Code Online (Sandbox Code Playgroud)

而且我不知道将初始化为什么值.可能是零,可能是空字符串,可能是任何东西.

使用有什么好处

if (![hi length])
Run Code Online (Sandbox Code Playgroud)

VS

if (![hi isEqualToString:@""])
Run Code Online (Sandbox Code Playgroud)

似乎两种情况都为空字符串,nil和任何其他类型的字符串返回相同的值.我猜想长度更好,因为它更有效率.它只返回一个变量,其中isEqualToString必须进行比较.

string syntax compare objective-c

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

在java中修改函数内部参数的简洁方法是什么?

我有兴趣用Java做这个C代码:

// sets n's ith bit from right, i starts from 0
void setBit(int* n, int i){
   *n = *n | (1 << i);
}
Run Code Online (Sandbox Code Playgroud)

但是,看起来java无法传递地址,那么一些干净的方法会是什么呢?

我想到了两种方法,但我想知道是否有更好的方法来做到这一点?

方法1:使用数组

 // sets n[0]'s ith bit from right, i starts from 0
public void setBit(int[] n, int i){
   n[0] = n[0] | (1 << i);
}
Run Code Online (Sandbox Code Playgroud)

方法2:使用课程

private class Data{
   int value;
}

// sets d.value's ith bit from right, i starts from 0
public void setBit(Data d, int i){
   d.value = d.value …
Run Code Online (Sandbox Code Playgroud)

c java parameters

0
推荐指数
1
解决办法
88
查看次数

Java可以初始化类似于C++的对象数组中的对象,而不必循环并调用new吗?

在C++中,代码Card cards[20];初始化20个Card对象,而在Java中,代码Card[] cards = new Card[20];初始化一个可以容纳20个Card对象的数组,但Card对象实际上并未初始化.你必须做

for (int i = 0; i < cards.length; i++) {
    cards[i] = new Card();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法避免在Java中执行此操作,类似于C++?

c++ java arrays initialization

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

有没有办法在Hive HQL中将两列相加到另一列?

我希望每天,每周和每月运行我发送的邮件数量.大约有500种不同的消息类型.

我有以下表格:

Table name: messages

int message_type
BIGINT num_sent
string date

Table name: stats

int message_type
BIGINT num_sent_today
BIGINT num_sent_week
BIGINT num_sent_month
Run Code Online (Sandbox Code Playgroud)

表消息每天更新,包含今天日期的新行.我可以每天运行一个单独的配置单元查询来更新stats表吗?注意我无法通过直接查询消息表来获取运行计数,WHERE date >= 30 days ago因为表太大了.我必须添加/减去表统计中的每日值.像这样的东西:

// pseudocode
// Get this table (call it table b) from table messages

   int message_type
   BIGINT num_sent_today
   BIGINT num_sent_seven_days_ago
   BIGINT num_sent_thirty_days_ago

// join b with table stats so that I can

// Set stats.num_sent_today = b.num_sent_today
// Set stats.num_sent_week = stats.num_sent_week + b.num_sent_today - b.num_sent_seven_days_ago
// Set stats.num_sent_month …
Run Code Online (Sandbox Code Playgroud)

hadoop hive mapreduce hiveql

0
推荐指数
1
解决办法
5797
查看次数

Java:当我可以使用单例时,我什么时候想要使用静态方法?

读过静态类和单例模式之间的区别?,没有一个答案列出了在单例上使用静态方法的任何优点,这让我想知道为什么有人会想要使用静态方法.

java oop singleton static class

-4
推荐指数
1
解决办法
230
查看次数