Tag: 映射

在Java中按日期键排序地图

我正在尝试使用TreeMap按日期键在java中对地图进行排序。 这是我的代码 public static void sort() { BufferedReader br; String line; String[] data; Date date ; DateFormat df = new SimpleDateFormat(“dd-mm-YYY”); Map map = new TreeMap(); try { br = new BufferedReader(new FileReader( “/home/user/Desktop/train/2013-training_set.txt”)); int i=0; while ((line = br.readLine()) != null) { ++i; data = line.split(“:”); map.put(df.parse(data[1]), line); } System.out.println(map.size()+” i = “+i); Set […]

如何预先计算有效的组合数而不是使用while循环?

给定dc1,dc2,dc3和机器列表的数据中心列表,如下所述h1,h2,h3,h4 – Datacenters = dc1, dc2, dc3 Machines = h1, h2, h3, h4 我想仅生成以下组合 – a) {dc1=h1, dc3=h3, dc2=h2} b) {dc1=h2, dc3=h4, dc2=h3} c) {dc1=h3, dc3=h1, dc2=h4} d) {dc1=h4, dc3=h2, dc2=h1} 每个传递中的每个数据中心都应该获得备用机器/主机。 他们不应该得到相同的机器。 例如,如上所示 – dc1 gets h1 , dc2 gets h2 , dc3 gets h3因此每个数据中心的所有机器都不同。 并且在第二次通过中,如b所示 – 现在dc1 gets h2 (因为第一次通过时dc1已经得到h1), dc2 got h3 […]

Hibernate Mapping – 使用关联表连接两个表 – 但是有一个扭曲

我有以下实体… Customer , Card和Address 顾客: { private String cust_id; // Primary key ….. @OneToOne Address address; // I want to load address of the customer. // Can change the association to @OneToMany, if needed } 卡: { private String card_id; // Primary Key private String cust_id; // Foreign Key to Customer.cust_id …. } 地址: { […]

提高此方案性能的方法

我有一张填充了大量数据的地图(大约300,000条记录) 并按如下方式迭代, for (Map.Entry<String, List> entry : testMap .entrySet()) { // send email with map keys as email’id // email content is populated from the list // Perform a sql update to the column with the dyanamic value generated here with the email’id } 如上所述,我担心在for循环中执行的上述操作会导致性能问题。 更新: 情景是。 我正在迭代一个包含大量数据的地图, 迭代它我得到用户ID,我必须计算用户ID。例如,考虑userid+some constants ,这应该在数据库表中更新。 并且还应该与我的地图中的列表值一起添加到电子邮件内容中 所以我认为批量更新是不可能的,我的理解是正确的吗? 我应该遵循这种方法吗? 或者选择任何其他想法

键盘输入与swing Java

我正在使用java swing工作计算器,我希望能够通过键盘输入数字和操作。 我似乎无法让它发挥作用。 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { JPanel[] row = new JPanel[6]; JButton[] button = new JButton[23]; JMenuBar menubar = new JMenuBar(); JMenu file = new JMenu(“File”); JMenuItem clear = new JMenuItem(“Clear”); JMenuItem exit = new JMenuItem(“Exit”); String[] buttonString = {“7”, “8”, “9”, “+”, “4”, […]

通过Collections.unmodifiable *已经用Collections.unmodifiable *包装的实例是多么低效?

我有一些计件工作由不同的自定义(源代码不可用)框架完成,这些框架可以传回Map实例。 不幸的是,这些框架在返回的Map实例中并不一致,这些实例已用Collections.unmodifiableMap包装。 为了确保我的代码中更高程度的不变性(为了更容易的multithreading使用),我在这些框架返回的任何内容上统一调用了Collections.unmodifiableMap。 Map immutableMap = framework.getRecordsByName(); //does this created a nested set of unmodifiableMap wrapper instances? this.immutableField = Collections.unmodifiableMap(immutableMap); . . . Map maybeImmutableMap = framework.getRecordsByName(); //is there some means to get instanceof to work? if (!(maybeImmutableMap instanceof Collections.UnmodifiableMap)) { this.immutableField = Collections.unmodifiableMap(maybeImmutableMap); } 我意识到我的设计可能会遇到性能问题。 在某些情况下,我正在调用Collections.unmodifiableMap向它传递一个实例,该实例已经被同一个调用的框架包装。 而且我的重新包装可能会在整个实例中引起额外的方法调用。 似乎使用“instanceof Collections.UnmodifiableMap”不起作用。 如果我当前引用的Map实例需要被包装,我找不到任何检测方法(不包括使用这种情况下不是选项的reflection – 方式太慢)。 问题: A)Collections.unmodifiableMap()方法是否检查它是否传递了UnmodifiableMap的实例,如果是这样,只返回相同的引用(从而避免在调用方法之前检查)? […]

Java并发:HashMap和ConcurrentHashMap的“get(Key)”性能相同吗?

当没有对底层Map进行修改时, get(Key)方法调用标准HashMap和ConcurrentHashMap的性能相同(因此只执行get()操作。) 更新背景: 并发是一个非常复杂的话题:我确实有“并发/线程安全”,但只有看跌期权,这种情况极少发生。 对于看跌期权,我可以交换地图关联本身(primefaces和线程安全)。 因此我要求我做了很多获取(并且可以选择使用HashMap(创建临时Hashmap,将数据复制到新的HashMap和交换关联)或使用ConcurrentHashMap实现它…作为我的应用程序真的我想了解更多关于性能如何随着不同的获取而丢失。这听起来很愚蠢,互联网上有太多不必要的信息,但我认为这可能是更多人感兴趣的东西。所以,如果有人知道ConcurrentHashMap的内部工作原理,这样可以很好地回答这个问题。 非常感谢!

使用Oracle序列时,Hibernate不会生成标识符

我有以下映射 @Entity @SequenceGenerator(name=”sacpSequenceGenerator”, sequenceName=”SACP_SEQ”) public class Sacp { private Integer id; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator=”sacpSequenceGenerator”) public Integer getId() { return this.id; } // other setter’s and getter’s } 根据SACP表进行映射 ID NUT NULL NUMBER(4) 当我试图保存一个Sacp实例时,Hibernate抱怨道 ORA-01438:大于指定精度的值允许此列 即使使用Long而不是Integer,也会抛出相同的错误 我该怎么做才能解决这个问题?

IdentityHashMap使用线性探测进行冲突解决的原因

正如我们在java集合框架中所知, Map每个类都使用Chaining进行冲突解决,但IdentityHashMap使用线性探测。 如果你看到java文档,它提到: 对于许多JRE实现和操作混合,此类将产生比HashMap更好的性能(HashMap使用链接而不是线性探测)。 我的问题是: 如果线性探测的性能更好,那么实现者为什么只使用了IdentityHashMap而不是所有Map实现的衬里 探测 为什么线性探测然后链接会有性能提升。 坦克。

Java将XML转换为动态的XML

我正在寻找从XML定义创建和加载JAVA对象的最佳工具/方法。 我已经检查了JAXB ,看起来相当不错,但是没有发现是否有办法使用实体哪些属性是动态的,或者不时更改,所以想要有类似自动处理实体的方式,而不需要转换将对象转换为预定义的Entity对象。 这样的事情存在吗? 工作流将类似于从具有动态属性集的每个实体的XML创建类读取和/或为这些实体创建ORM映射部分,然后所有操作检索/存储到db或可能将使用某些NoSQL解决方案,如MongoDB。