[英]What it is the best performance way to grab duplicates from a large Set<String>?
[英]Best way to grab and print data from a large amount of text fields?
我試圖找出最好的方法來讀取大約60個文本字段中的數據,然后將它們打印成行。
例如
System.out.println(field1.getText()+“” + field2.getText());
問題是,我不想浪費getText()方法。
因此,我的主要問題是,是否有一種更簡單,更好的方法(在性能方面)呢?
圖片: 我的文本字段
您可以使用StringBuilder代替字符串連接以獲得更好的性能:
StringBuilder s = new StringBuilder();
s.append(field1.getText()).append(" ")
.append(field2.getText()).append(" ")
.append(field3.getText());
System.out.println(s.toString());
而且,如果您的字段存儲在集合中,則可以遍歷該集合,而不用調用每個單獨的字段:
List<JTextField> fields = new ArrayList<JTextField> ();
for(int i = 0; i < 30; i++) {
fields.add(new JTextField(Integer.toString(i)));
}
//...
StringBuilder s = new StringBuilder();
for (JTextField t : fields) {
s.append(t.getText()).append(" ");
}
//...
我想不出任何其他性能更好的方法。
首先,
其次,
將字段添加到數組或集合中,然后在for-each循環中對其進行迭代,以輸出輸出。
在類上使用反射,通過一些命名約定來識別字段,例如正則表達式textField.+
編寫自己的注釋,使其在運行時可保留,並對要訪問的每個字段進行注釋,然后使用反射在類字段上進行迭代,檢查該注釋,並在附加了注釋的情況下打印文本字段的值。
具有良好的命名約定/樣式,最好是2.。 3.有點重量級,但非常精確和靈活。 1.也是一種快速簡便的技巧。
您可以嘗試使用反射。 在性能方面,它會比較慢:
public class Snippet {
JTextField field1 = new JTextField("1");
JTextField field2 = new JTextField("2");
JTextField field3 = new JTextField("3");
JTextField field4 = new JTextField("4");
// add more fields here
public static void main(String[] args) throws Exception {
new Snippet().run();
}
private void run() throws Exception {
for (int i = 1; i <= 4; i += 2) {
JTextField textfieldA = getTextField(i);
JTextField textfieldB = getTextField(i + 1);
System.out.println(textfieldA.getText() + " " + textfieldB.getText());
}
}
private JTextField getTextField(int i) throws NoSuchFieldException, IllegalAccessException {
Field field = Snippet.class.getDeclaredField("field" + i);
JTextField textfield = (JTextField) field.get(this);
return textfield;
}
}
這是快速而又骯臟的,從長遠來看,最好將文本字段放入適當的數據結構(例如List或Map)並對其進行簡單地迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.