Tag: merge

按键加入两张地图

我有两张地图: Map mapOne = {(1,”a”), (2, “b”)}; Map mapTwo = {(1,10.0), (2,20.0)}; 我希望通过Integer值将这些映射组合成一个,所以结果映射是 Map mapResult = {(“a”,10.0), (“b”,20.0)}; 有没有办法比迭代条目集更容易做到这一点?

Java:混合两个WAV文件而不会引入噪音

我正在尝试将2个WAV文件混合到一个WAV文件中。 文件将始终具有完全相同的持续时间并具有相同的格式(16位,44.1 kHz,带符号,小端,单声道)。 使用AudioSystem.getAudioInputSream使用ByteArrayOutputStream将两个WAV放入字节数组,以确保我只获取PCM数据而没有标头。 在其他一些线程的帮助下,我已经能够成功地组合arrays,但不会在信号中引入大量噪声。 它肯定听起来不像剪辑或失真,但我已经尝试平均每对字节的总和以确保安全,这使得一切都更安静,噪音和所有。 任何见解将不胜感激! 我尝试了两种方法,它们应该做同样的事情,并且似乎产生相同的声音结果。 第一个更简单的方法: private byte[] mixBuffers(byte[] bufferA, byte[] bufferB) { byte[] array = new byte[bufferA.length]; for (int i=0; i<bufferA.length; i++) { array[i] = (byte) ((bufferA[i] + bufferB[i])); } return array; } 第二个更具体的方法: private byte[] mixBuffers(byte[] bufferA, byte[] bufferB) { byte[] array = new byte[bufferA.length]; for (int i=0; i<bufferA.length; i+=2) […]

我可以在Oracle中进行primefacesMERGE吗?

我在一个WebLogic集群中运行了几个J2EE应用程序实例。 在某些时候,这些应用程序会执行MERGE以将记录插入或更新到后端Oracle数据库中。 MERGE检查是否存在具有指定主键的行。 如果它在那里,请更新。 如果没有,请插入。 现在假设两个应用程序实例想要插入或更新主键= 100的行。假设该行不存在。 在合并的“检查”阶段,他们都看到行没有,所以他们都试图插入。 然后我得到一个唯一的键约束违规。 我的问题是:Oracle中是否存在primefacesMERGE? 我正在寻找一些与PL / SQL中的INSERT … FOR UPDATE类似的效果,除了我只能从我的应用程序执行SQL。 编辑:我不清楚。 我仍在使用MERGE语句,但仍会出现此错误。 问题是,只有“修改”部分是primefaces的,而不是整个合并。

编辑iTextSharp PdfSmartCopy类的DirectContent

在我的工作中,有时我必须合并几个到几百个pdf文件。 我一直在使用Writer和ImportedPages类。 但是当我将所有文件合并为一个文件时,文件大小变得巨大,所有合并文件大小的总和,因为字体附加到每个页面,而不是重复使用(字体嵌入到每个页面,而不是整个文档)。 不久前我发现了PdfSmartCopy类,它重用了嵌入的字体和图像。 在这里,问题就出现了。很多时候,在将文件合并到一起之前,我必须向它们添加其他内容(图像,文本)。 为此,我通常使用Writer对象的PdfContentByte 。 Document doc = new Document(); PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(“C:\test.pdf”, FileMode.Create)); PdfContentByte cb = writer.DirectContent; cb.Rectangle(100, 100, 100, 100); cb.SetColorStroke(BaseColor.RED); cb.SetColorFill(BaseColor.RED); cb.FillStroke(); 当我使用PdfSmartCopy对象执行类似PdfSmartCopy ,会合并页面,但不会添加其他内容。 使用PdfSmartCopy测试的完整代码: using (Document doc = new Document()) { using (PdfSmartCopy copy = new PdfSmartCopy(doc, new FileStream(Path.GetDirectoryName(pdfPath[0]) + “\\testas.pdf”, FileMode.Create))) { doc.Open(); PdfContentByte cb […]

使用iText合并不同宽度的pdf文档

使用iText合并不同宽度的文档时遇到问题。 下面是我用来合并的代码。 public static void doMerge(List list, OutputStream outputStream) throws Exception { Rectangle pagesize = new Rectangle(1700f, 20f); com.itextpdf.text.Document document = new com.itextpdf.text.Document(pagesize); PdfWriter writer = PdfWriter.getInstance(document, outputStream); document.open(); document.setPageSize(pagesize); com.itextpdf.text.pdf.PdfContentByte cb = writer.getDirectContent(); for (InputStream in : list){ PdfReader reader = new PdfReader(in); for (int i = 1; i <= reader.getNumberOfPages(); i++){ document.newPage(); //import […]

Spring-Data JPA:保存引用现有实体的新实体

问题基本上与下面的问题相同: JPA级联持久化并且对分离实体的引用会抛出PersistentObjectException。 为什么? 我正在创建一个引用现有的独立实体的新实体。 现在,当我在Spring数据存储库中保存此实体时,会抛出exception: org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist 如果我们看一下spring数据JPA源代码中的save()方法,我们看到: public S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); } } 如果我们在AbstractEntityInformation查看isNew() public boolean isNew(T entity) { return getId(entity) == null; } 所以基本上如果我保存()一个新实体(id == null) ,spring数据将始终调用persist,因此这种情况总是会失败。 在向集合添加新项目时,这似乎是一个非常典型的用例。 我该如何解决这个问题? 编辑1: 注意: 此问题与如何保存引用Spring JPA中现有实体的新实体没有直接关系? 。 详细说明假设您获得了通过http创建新实体的请求。 然后,您从请求中提取信息并创建您的实体和现有的实体。 因此,他们将永远脱离。

Java将XML文档附加到现有文档

我有两个我创建的XML文档,我想将这两个文档组合在一个新的信封中。 所以我有 National Weather Service… 5/19/2009 5/19/2009 和 31 Partly Cloudy 78 我想要做的是在根节点内组合两个:组合文档 我已经尝试创建一个临时文档并用文档的根节点替换子项: 我希望用两个文件的根元素替换两个空格,但我得到“WRONG_DOCUMENT_ERR:一个节点用在与创建它的文档不同的文档中。” 我尝试采用和导入根节点,但我得到了同样的错误。 是否有一些简单的方法来组合文档而不必阅读并为每个节点创建新元素? 编辑:示例代码片段现在只是尝试将一个移动到“空白”文档… importNode和adoptNode函数不能导入/采用Document节点,但它们无法导入元素节点及其子树…或者如果它确实,它似乎不适用于追加/替换仍然。 Document xmlDoc; //created elsewhere Document weather = getWeather(latitude, longitude); Element weatherRoot = weather.getDocumentElement(); Node root = xmlDoc.getDocumentElement(); Node adopt = weather.adoptNode(weatherRoot); Node imported = weather.importNode(weatherRoot, true); Node child = root.getFirstChild(); root.replaceChild(adopt, child); //initially tried replacing the […]