有这么一段代码。理论上,我希望 print 会输出每个元素,但它只输出 1、3、5
a = [1, 2, 3, 4, 5, 6]
for i in a:
print(i)
if i % 2 != 0:
a.remove(i)
# 1
# 3
# 5
有这么一段代码。理论上,我希望 print 会输出每个元素,但它只输出 1、3、5
a = [1, 2, 3, 4, 5, 6]
for i in a:
print(i)
if i % 2 != 0:
a.remove(i)
# 1
# 3
# 5
有一种方法可以对来自多个字段的集合的元素进行分组。
public void test() {
List<Item> itemsList = ...//Чтение из XML;
Map<List<Object>, List<Item>> groupBy =
itemsList.stream().collect(Collectors.groupingBy(
i -> Arrays.asList(i.id, i.city, i.order_status)));
for (Map.Entry<List<Object>, List<Item>> t : groupBy.entrySet()) {
System.out.println(t.getKey());
for (Item item : t.getValue()) {
System.out.println(" " + item);
}
}
}
以及如何在没有 Stream API 的情况下做同样的事情?
再会。
目标:在 pandas 数据框中找到只重复一次的行。
示例:表中有 2 列,按行 - (1,2) (1,3) (1,2)。该条目(1,3)遇到了 1 次,我们需要它(它在数据框中的索引)。
问题:最快的方法是什么?
有一个正面的解决方案:我遍历框架,计算遇到的唯一记录的数量,如果为 1,那么这就是我需要的
我刚开始学习编程语言,想学习如何写得漂亮简洁,所以知道如何缩短以下代码将不胜感激:
int SpriteAnimation()
{
if (x + y != 2)
{
if (x <= 12)
{
tcordLeft = (x - 1) * scale,
tcordUp = (y - 1) * scale,
tcordRight = x * scale,
tcordDown = y * scale;
}
else
{
x = 0;
if (y == 12)
{
tcordLeft = (x - 1) * scale,
tcordUp = (y - 1) * scale,
tcordRight = x * scale,
tcordDown = y * scale;
y = 1;
}
else
{
y++;
}
}
}
else
{
tcordLeft = scale - scale,
tcordUp = scale - scale,
tcordRight = scale,
tcordDown = scale;
}
x++;
return 0;
}
下面是所有变量的含义:
int x = 1, y = 1; //номера спрайтов по оси x и y
float spritesheetsize = 0.1152, spritesize = 0.96;
//spritesheetsize - размер спрайтлиста (1152 пикселя в ширину и высоту)
//spritesize - размер одного спрайта (96 пикселей в ширину и высоту)
float scale = spritesize / spritesheetsize * 0.1 * 0.1;
//scale - масштабирование под нужный размер отображение
float tcordLeft,
tcordUp,
tcordRight,
tcordDown;
//текстурные координаты для отображение нужного спрайта из спрайтлиста
我想我写了很多额外的东西,这段代码可以减少,但我不知道如何)
大家好!请帮忙。我看了很多有相同错误的线程,但没有找到解决方案。
写入对象时,PostgreSQL序列生成器不起作用。
给出错误信息:
错误:关系“receiving_acts”的“doc_number”列中的空值违反了非空约束
更详细地:
"org.springframework.dao.DataIntegrityViolationException: could not
execute statement; SQL [n/a]; constraint [doc_number\" of relation
\"receiving_acts].
org.hibernate.exception.ConstraintViolationException: could not
execute statement. org.postgresql.util.PSQLException: ERROR: null
value in column \"doc_number\" of relation \"receiving_acts\" violates
not-null constraint\n Подробности: Failing row contains
(feba8451-de26-47c2-9fe2-5381318d8deb, null, 2023-03-01 14:42:03+02,
f, 47a9bb21-fa67-4ff7-bf33-e276d23a19eb)."
有一类Entity:
@Entity
@Table(name = "receiving_acts")
@Getter
@Setter
public class ReceivingAct extends AbstractDocumentEntity {
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ra_dn_gen")
@SequenceGenerator(name = "ra_dn_gen", sequenceName = "receiving_acts_doc_number_seq", allocationSize = 1)
@Column(name = "doc_number")
private Integer docNumber;
@ManyToOne
@JoinColumn(name = "contractor_id", nullable = false)
private Contractor contractor;
@OneToMany(mappedBy = "receivingAct", cascade = CascadeType.ALL)
private List<ReceivingActTSVehiclesLine> tableVehicles;
}
@Id类型字段UUID在类中AbstractDocumentEntity并且没有问题,生成器可以工作。
DDL表创建:
CREATE SEQUENCE IF NOT EXISTS receiving_acts_doc_number_seq AS INTEGER INCREMENT BY 1;
CREATE TABLE receiving_acts
(
id UUID NOT NULL DEFAULT gen_random_uuid(),
doc_number INTEGER NOT NULL DEFAULT nextval('receiving_acts_doc_number_seq'),
date_time TIMESTAMP WITH TIME ZONE NOT NULL,
marked BOOLEAN NOT NULL,
contractor_id UUID NOT NULL,
CONSTRAINT pk_receiving_acts PRIMARY KEY (id),
FOREIGN KEY (contractor_id) REFERENCES contractors (id)
);
控制器类中的方法:
@PostMapping("/")
@ResponseStatus(HttpStatus.CREATED)
public ReceivingActResponse createReceivingAct(@RequestBody ReceivingActRequest docRequest) {
ReceivingAct docEntity = receivingActMapper.toReceivingActEntity(docRequest);
ReceivingAct savedDocEntity = receivingActService.add(docEntity);
return receivingActMapper.toReceivingActResponse(savedDocEntity);
}
add课堂上的方法ReceivingActServiceImpl:
@Override
public ReceivingAct add(ReceivingAct receivingAct) {
return receivingActRepository.save(receivingAct);
}
该方法save是存储库中的标准方法ReceivingActRepository:
public interface ReceivingActRepository extends JpaRepository<ReceivingAct, UUID> {
}
JSON发帖要求:
{
"docDateTime": "2023-03-03 11:53:56",
"contractorId": "47a9bb21-fa67-4ff7-bf33-e276d23a19eb",
"tableVehicles": [
{
"grossWeight": 1564.910,
"vinCodeId": "d7094b75-fefc-4745-a4b6-4c5d4a2f97c3",
"cellId": "bba1f527-a815-41ac-bbf9-aa5433d2d888"
}
]
}
结果,在创建对象时,docNumber它被初始化null,以及id. 但id它返回生成,但docNumber不是。
类型改为Integer,int生成不发生,初始化0,写入0。
数据库中的序列被创建,它被锚定到一个字段。如果您手动添加一行,则会docNumber生成它。
试图@Column添加columnDefinition = "integer default nextval('receiving_acts_doc_number_seq'),没有帮助。
我不知道在哪里看,在哪里挖掘。也许您需要在保存之前以某种方式自己生成它,但这是不合逻辑的。也许当有另一个序列时,需要一种不同的方法。