小编Geo*_*cis的帖子

当要比较对象的所选字段相等时,Java 如何决定对具有多个字段的对象列表进行排序?

我有一个名为 Instance 的对象,它有 2 个字段,一个特征数组(这是另一个对象),表示数据集中的列,例如年龄、性别、类别等;和它们的值(即一个数字)。我还实现了一个自定义比较器,它可以根据实例的特定功能对这些对象的列表进行排序,如下所示:

Comparator<Instance> comparator = Comparator.comparing(c -> c.get(feature));
Instance[] sorted = instList.stream().sorted(comparator).toArray(Instance[]::new);
Run Code Online (Sandbox Code Playgroud)

现在,这段代码工作正常,但是,在很多情况下,我排序的特征与另一个实例具有相同的值。在这种情况下,Java如何决定如何继续对列表进行排序?

java sorting comparator

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

在 C 中获取浮点数的位表示

我正在尝试使用联合来获取浮点值的位表示,我的代码目前如下:

union ufloat {
  float f;
  unsigned u;
};

int main( ) {       

   union ufloat u1;
   u1.f = 3.14159f;
   printf("u1.u : %f\n", u1.u);
Run Code Online (Sandbox Code Playgroud)

但是,我尝试打印的任何内容都会打印为 0.0000000,而不是位(例如 0001 0110 或类似的内容),我的代码有什么问题?

请注意,我希望使用联合来实现这一点。

c floating-point bit-manipulation

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

消除String中的重复字符

我目前解决以下问题hackerrank https://www.hackerrank.com/challenges/reduced-string/problem,在给定的一个字符串我必须消除对是相同的字符.

我的代码如下:

static String super_reduced_string(String s){
    for (int i = 0; i < s.length()-1; i++) {
        if (s.charAt(i) == s.charAt(i+1)) {
            s = s.substring(0, i) + s.substring(i+2);
            i = 0;
        }
    }
    if (s.length() == 0) {
        return("Empty String");
    } else {
        return(s);
    }

}
Run Code Online (Sandbox Code Playgroud)

它适用于大多数情况,但是对于某些测试用例,如果字符串是"baab",代码输出"bb"(baab应该简化为bb然后再变为空字符串)而不是空字符串,但是我不知道不知道为什么会这样.

java algorithm

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

使用SELECT语句更新列

我有一个FactSales包含以下列的表:

Revenue, Quantity, UnitCost
Run Code Online (Sandbox Code Playgroud)

这就是表格的样子:

UnitCost   | Revenue | Quantity
-----------+---------+----------
NULL       | 50.0    | 5
NULL       | 70.0    | 3
Run Code Online (Sandbox Code Playgroud)

现在我想更新数据UnitCost等于Revenue / Quantity,使用以下查询时如何

UPDATE FactSales 
SET UnitCost = (SELECT Revenue / Quantity
                FROM FactSales);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

如何编写update语句以成功更新值?

sql sql-server

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

如何从Python列表中获取相同的随机样本

我有一个小脚本来从列表中获取随机样本,但是我希望每当运行此脚本时始终获得相同的列表。我该怎么做?

我的代码当前如下,但是每次运行脚本时,我都会得到不同的示例。

import random

def SampleWithoutRepetition(population, sampleSize):
    random.seed(100)
    result =  random.sample(set(
        map(lambda attribute: attribute, population)), sampleSize)
    print(f"result: {result}")

population = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']

SampleWithoutRepetition(population, 4)
Run Code Online (Sandbox Code Playgroud)

python random

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

在Python中将小写字符更改为大写,反之亦然

我正在尝试编写一个函数,给定一个字符串返回另一个字符串,将其小写字符翻转为大写字母,反之亦然.

我目前的方法如下:

def swap_case(s):
    word = []
    for char in s:
        word.append(char)

    for char in word:
        if char.islower():
            char.upper()
        else:
            char.lower()

    str1 = ''.join(word)
Run Code Online (Sandbox Code Playgroud)

但是字符串实际上没有改变,我应该如何改变循环内的字符呢?

PS:我知道s.swapcase()很容易解决这个问题,但我想在for循环期间改变字符串中的字符.

python string

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

React-Bootstrap 从 Form-Select 获取值

我有一个 React Bootstrap Form 组件,我想在其中获取选择表单控件的值。我试图用 onChange 更新我的钩子的值,但我似乎无法让它工作(类型始终保持为空字符串),我当前的代码如下。

const [type, setType]: any = useState('');
render(
<Form.Group controlId="formBasicSelect">
     <Form.Label>Select Norm Type</Form.Label>
     <Form.Control as="select" >
        <option value="DICTUM">Dictamen</option>
        <option value="CONSTANCY">Constancia</option>
        <option value="COMPLEMENT">Complemento</option>
     value={type}
     onChange={(e: any) => setText(e.target.value)}
     </Form.Control>
 </Form.Group>
);
Run Code Online (Sandbox Code Playgroud)

类似的方法适用于其他 Form 控件,但也许 select 有一些不同之处。

reactjs react-bootstrap

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