คำถามติดแท็ก initialization

30
การเริ่มต้นของ ArrayList ในหนึ่งบรรทัด
ฉันต้องการสร้างรายการตัวเลือกสำหรับการทดสอบ ตอนแรกฉันทำสิ่งนี้: ArrayList<String> places = new ArrayList<String>(); places.add("Buenos Aires"); places.add("Córdoba"); places.add("La Plata"); จากนั้นฉันปรับโครงสร้างโค้ดอีกครั้งดังนี้: ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); มีวิธีที่ดีกว่าในการทำเช่นนี้?

26
JavaScript ตรวจสอบว่ามีตัวแปรอยู่ (ถูกกำหนด / เตรียมใช้งาน)
วิธีใดในการตรวจสอบว่าตัวแปรถูกเริ่มต้นดีกว่า / ถูกต้อง (สมมติว่าตัวแปรสามารถเก็บอะไรได้ (สตริง, int, วัตถุ, ฟังก์ชั่น ฯลฯ )) if (elem) { // or !elem หรือ if (typeof(elem) !== 'undefined') { หรือ if (elem != null) {

30
ฉันจะเริ่มต้นแผนที่แบบคงที่ได้อย่างไร
คุณจะเริ่มต้นคงที่Mapใน Java อย่างไร วิธีที่หนึ่ง: แบบเริ่มต้นคงที่ วิธีที่สอง: ตัวเริ่มต้นอินสแตนซ์ (คลาสย่อยแบบไม่ระบุชื่อ) หรือวิธีอื่น ๆ ? ข้อดีและข้อเสียของแต่ละข้อคืออะไร นี่คือตัวอย่างที่แสดงวิธีการสองวิธี: import java.util.HashMap; import java.util.Map; public class Test { private static final Map<Integer, String> myMap = new HashMap<>(); static { myMap.put(1, "one"); myMap.put(2, "two"); } private static final Map<Integer, String> myMap2 = new HashMap<>(){ { put(1, "one"); put(2, …

12
วิธีเริ่มต้น HashMap โดยตรง (ตามตัวอักษร) ได้อย่างไร
มีวิธีการเริ่มต้น Java HashMap เช่นนี้ไหม: Map<String,String> test = new HashMap<String, String>{"test":"test","test":"test"}; สิ่งที่จะเป็นไวยากรณ์ที่ถูกต้อง? ฉันไม่พบอะไรเกี่ยวกับเรื่องนี้ เป็นไปได้ไหม ฉันกำลังมองหาวิธีที่สั้นที่สุด / เร็วที่สุดในการใส่ค่า "สุดท้าย / คงที่" ในแผนที่ที่ไม่เคยเปลี่ยนแปลงและเป็นที่รู้จักล่วงหน้าเมื่อสร้างแผนที่

22
วิธีการเริ่มต้นสมาชิกทั้งหมดของอาร์เรย์ให้เป็นค่าเดียวกันได้อย่างไร
ฉันมีอาร์เรย์ขนาดใหญ่ในC (ไม่ใช่C ++หากสร้างความแตกต่าง) ฉันต้องการเริ่มต้นสมาชิกทั้งหมดที่มีค่าเดียวกัน ฉันสาบานได้ว่าฉันเคยรู้วิธีง่ายๆในการทำเช่นนี้ ฉันสามารถใช้memset()ในกรณีของฉัน แต่ไม่มีวิธีการทำสิ่งนี้ที่สร้างไว้ในไวยากรณ์ C หรือไม่?

15
ประสิทธิภาพของ Java“ การรั้งสองครั้งเริ่มต้น”?
ตั้งค่าไว้ที่Stack Overflow แล้วใช่ไหม : Чтотакое double brace และต่อไป ในคุณสมบัติที่ซ่อนของ Javaคำตอบด้านบนกล่าวถึงคู่รั้งการเริ่มต้นด้วยมากไวยากรณ์ล่อลวง: Set<String> flavors = new HashSet<String>() {{ add("vanilla"); add("strawberry"); add("chocolate"); add("butter pecan"); }}; สำนวนนี้สร้างคลาสภายในที่ไม่ระบุชื่อโดยมีเพียง initializer อินสแตนซ์ซึ่งมัน "สามารถใช้วิธีการใด ๆ [... ] ในขอบเขตที่มี" คำถามหลัก: นี่มันไม่มีประสิทธิภาพเท่าที่ฟังดูไหม? การใช้งานควรถูก จำกัด เพียงการเริ่มต้นครั้งเดียวหรือไม่? (และแน่นอนแสดงออก!) คำถามที่สอง: HashSet ใหม่จะต้องเป็น "this" ที่ใช้ใน initializer อินสแตนซ์ ... ทุกคนสามารถแสดงความเห็นต่อกลไกได้หรือไม่? คำถามที่สาม: สำนวนนี้คลุมเครือเกินไปที่จะใช้ในรหัสการผลิตหรือไม่ สรุป:คำตอบที่ดีมากขอบคุณทุกคน ในคำถาม (3) …

30
ใน C # ฉันควรใช้ string.Empty หรือ String.Empty หรือ“” เพื่อทำให้สตริงเป็นตัวเริ่มต้นหรือไม่?
ใน C # ฉันต้องการเริ่มต้นค่าสตริงด้วยสตริงว่าง ฉันจะทำสิ่งนี้ได้อย่างไร อะไรคือวิธีที่ถูกต้องและทำไม string willi = string.Empty; หรือ string willi = String.Empty; หรือ string willi = ""; หรืออะไร?

29
วิธีที่ง่ายที่สุดในการเริ่มต้น std :: vector ด้วยองค์ประกอบ hardcoded คืออะไร?
ฉันสามารถสร้างอาร์เรย์และเริ่มต้นได้เช่นนี้ int a[] = {10, 20, 30}; ฉันจะสร้างstd::vectorและเริ่มต้นมันอย่างสง่างามในทำนองเดียวกันได้อย่างไร วิธีที่ดีที่สุดที่ฉันรู้คือ: std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30); มีวิธีที่ดีกว่า?

17
วิธีการเริ่มต้นสมาชิกคงที่ส่วนตัวใน C ++?
วิธีที่ดีที่สุดในการเริ่มต้นสมาชิกข้อมูลส่วนตัวแบบคงที่ใน C ++ คืออะไร? ฉันลองสิ่งนี้ในไฟล์ส่วนหัวของฉัน แต่มันทำให้ฉันมีข้อผิดพลาด linker: class foo { private: static int i; }; int foo::i = 0; ฉันเดาว่าเป็นเพราะฉันไม่สามารถเริ่มสมาชิกส่วนตัวจากนอกห้องเรียนได้ ดังนั้นวิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

14
วิธีการเตรียมใช้งาน struct ตามมาตรฐานภาษาโปรแกรม C
ฉันต้องการเริ่มต้นองค์ประกอบ struct แยกในการประกาศและการเริ่มต้น นี่คือสิ่งที่ฉันมี: typedef struct MY_TYPE { bool flag; short int value; double stuff; } MY_TYPE; void function(void) { MY_TYPE a; ... a = { true, 15, 0.123 } } นี่เป็นวิธีในการประกาศและกำหนดค่าเริ่มต้นตัวแปรท้องถิ่นMY_TYPEให้สอดคล้องกับมาตรฐานภาษาโปรแกรม C หรือไม่ (C89, C90, C99, C11 และอื่น ๆ ) หรือมีอะไรที่ดีขึ้นหรืออย่างน้อยก็ทำงานได้ดี อัปเดตฉันสิ้นสุดลงด้วยองค์ประกอบเริ่มต้นคงที่ที่ฉันตั้งทุกองค์ประกอบย่อยตามความต้องการของฉัน
466 c  struct  initialization 

10
วิธีการเริ่มต้นอาร์เรย์ใน Java?
ฉันกำลังเริ่มต้นอาร์เรย์เช่นนี้ public class Array { int data[] = new int[10]; /** Creates a new instance of Array */ public Array() { data[10] = {10,20,30,40,50,60,71,80,90,91}; } } NetBeans ชี้ไปที่ข้อผิดพลาดที่บรรทัดนี้: data[10] = {10,20,30,40,50,60,71,80,90,91}; ฉันจะแก้ปัญหาได้อย่างไร

4
ทำไมการเริ่มต้นรายการ (โดยใช้เครื่องหมายปีกกาแบบโค้ง) ดีกว่าตัวเลือกอื่น ๆ
MyClass a1 {a}; // clearer and less error-prone than the other three MyClass a2 = {a}; MyClass a3 = a; MyClass a4(a); ทำไม? ฉันไม่พบคำตอบใน SO ดังนั้นให้ฉันตอบคำถามของฉันเอง

13
ฉันจะเริ่มต้นอาร์เรย์ว่างใน C # ได้อย่างไร
เป็นไปได้หรือไม่ที่จะสร้างอาร์เรย์ว่างโดยไม่ระบุขนาด? ตัวอย่างเช่นฉันสร้าง: String[] a = new String[5]; เราสามารถสร้างอาเรย์สตริงข้างต้นโดยไม่มีขนาดได้หรือไม่?

25
ความแตกต่างระหว่างการประกาศตัวแปรก่อนหรือในวง?
ฉันสงสัยอยู่เสมอว่าโดยทั่วไปแล้วการประกาศตัวแปรแบบโยนทิ้งต่อหน้าวงหนึ่งซึ่งต่างจากการวนซ้ำภายในวงทำให้เกิดความแตกต่าง (ประสิทธิภาพ) ไหม? ตัวอย่าง(ค่อนข้างไม่มีจุดหมาย)ใน Java: a)การประกาศก่อนลูป: double intermediateResult; for(int i=0; i < 1000; i++){ intermediateResult = i; System.out.println(intermediateResult); } b)การประกาศ (ซ้ำ) ภายในวง: for(int i=0; i < 1000; i++){ double intermediateResult = i; System.out.println(intermediateResult); } เป็นที่หนึ่งที่ดีกว่าหรือข ? ฉันสงสัยว่าการประกาศตัวแปรซ้ำ (ตัวอย่างb ) สร้างค่าใช้จ่ายมากขึ้นในทางทฤษฎีแต่คอมไพเลอร์นั้นฉลาดพอที่จะไม่สำคัญ ตัวอย่างbมีข้อได้เปรียบของการกระชับและ จำกัด ขอบเขตของตัวแปรที่จะใช้ แต่ฉันก็ยังมีแนวโน้มที่จะรหัสตามตัวอย่าง แก้ไข:ฉันสนใจกรณี Java เป็นพิเศษ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.