คำถามติดแท็ก primitive-types

18
วิธีการแปลง NSString เป็น NSNumber
ฉันสามารถแปลงNSStringที่มีจำนวนชนิดของข้อมูลใด ๆ ดั้งเดิม (เช่นint, float, char, unsigned intฯลฯ )? ปัญหาคือฉันไม่ทราบว่าหมายเลขชนิดใดที่สตริงจะมีเวลารันไทม์ ฉันมีความคิดว่าจะทำอย่างไร แต่ฉันไม่แน่ใจว่าสิ่งนี้ใช้ได้กับทุกประเภทหรือไม่และยังไม่ได้ลงนามและค่าจุดลอยตัว: long long scannedNumber; NSScanner *scanner = [NSScanner scannerWithString:aString]; [scanner scanLongLong:&scannedNumber]; NSNumber *number = [NSNumber numberWithLongLong: scannedNumber]; ขอบคุณสำหรับความช่วยเหลือ

16
วิธีการแปลง ArrayList ที่มีจำนวนเต็มเป็นอาร์เรย์ดั้งเดิม
ฉันพยายามแปลง ArrayList ที่มีวัตถุ Integer เป็น primitive int [] ด้วยโค้ดต่อไปนี้ แต่กำลังโยนข้อผิดพลาดในการคอมไพล์ เป็นไปได้ไหมที่จะแปลงเป็น Java? List<Integer> x = new ArrayList<Integer>(); int[] n = (int[])x.toArray(int[x.size()]);

21
ทำไมคนยังคงใช้ประเภทดั้งเดิมใน Java?
ตั้งแต่ Java 5 เรามีการชกมวย / การแยกประเภทดั้งเดิมเพื่อที่intจะห่อjava.lang.Integerและอื่น ๆ และอื่น ๆ ฉันเห็นมากของโครงการ Java ใหม่เมื่อเร็ว ๆ นี้ (ที่แน่นอนต้องมี JRE อย่างน้อย 5 รุ่นหากไม่ได้ 6) ที่มีการใช้intมากกว่าjava.lang.Integerแม้ว่ามันจะสะดวกสบายมากขึ้นที่จะใช้หลังตามที่มีวิธีการช่วยเหลือไม่กี่สำหรับการแปลง ถึงlongค่าและอื่น ๆ ทำไมบางชนิดยังคงใช้ชนิดดั้งเดิมใน Java มีประโยชน์ใด ๆ ที่เป็นรูปธรรม?

12
วิธีการทดสอบว่า Type เป็นแบบดั้งเดิมหรือไม่
ฉันมีบล็อกของรหัสที่ทำให้ประเภทเป็นอนุกรมในแท็ก Html Type t = typeof(T); // I pass <T> in as a paramter, where myObj is of type T tagBuilder.Attributes.Add("class", t.Name); foreach (PropertyInfo prop in t.GetProperties()) { object propValue = prop.GetValue(myObj, null); string stringValue = propValue != null ? propValue.ToString() : String.Empty; tagBuilder.Attributes.Add(prop.Name, stringValue); } นี้ทำงานได้ดียกเว้นฉันต้องการให้ทำเช่นนี้เพียงชนิดดั้งเดิมเช่นint, double, boolฯลฯ และประเภทอื่น …

7
Scalar กับประเภทข้อมูลดั้งเดิม - เป็นสิ่งเดียวกันหรือไม่?
ในบทความต่างๆที่ฉันได้อ่านบางครั้งมีการอ้างอิงถึงประเภทข้อมูลดั้งเดิมและบางครั้งก็มีการอ้างอิงถึงสเกลาร์ ความเข้าใจของฉันเกี่ยวกับแต่ละข้อคือเป็นประเภทข้อมูลของสิ่งง่ายๆเช่น int, boolean, char เป็นต้น มีบางอย่างที่ฉันขาดหายไปซึ่งหมายความว่าคุณควรใช้คำศัพท์เฉพาะหรือเป็นคำที่ใช้แทนกันได้? หน้า Wikipedia สำหรับแต่ละหน้าไม่ได้แสดงอะไรที่ชัดเจน หากข้อกำหนดสามารถใช้แทนกันได้คำใดที่ต้องการคือ?

7
เหตุใด Java Collections จึงไม่สามารถจัดเก็บประเภท Primitives ได้โดยตรง
คอลเลกชัน Java จัดเก็บเฉพาะ Objects ไม่ใช่ประเภทดั้งเดิม อย่างไรก็ตามเราสามารถจัดเก็บคลาส Wrapper ได้ ทำไมต้องมีข้อ จำกัด นี้

4
การตั้งค่า Short Value Java
ฉันกำลังเขียนโค้ดเล็ก ๆ น้อย ๆ ใน J2ME setTableId(Short tableId)ฉันได้เรียนด้วยวิธีการที่ ตอนนี้เมื่อฉันพยายามที่จะเขียนsetTableId(100)มันทำให้เกิดข้อผิดพลาดเวลาคอมไพล์ ฉันจะตั้งค่า short โดยไม่ต้องประกาศตัวแปร short อื่นได้อย่างไร เมื่อตั้งLongค่าฉันสามารถใช้setLongValue(100L)และใช้งานได้ ที่Lนี่หมายความว่าอย่างไรและมีไว้เพื่ออะไรShortค่าคืออะไร? ขอบคุณ

5
ฉันจะเริ่มต้น float เป็นค่าสูงสุด / นาทีได้อย่างไร
ฉันจะฮาร์ดโค้ดค่าสูงสุดหรือต่ำสุดสัมบูรณ์สำหรับทศนิยมหรือสองเท่าได้อย่างไร ฉันต้องการค้นหาค่าสูงสุด / นาทีของอาร์เรย์โดยเพียงแค่วนซ้ำและจับค่าที่ใหญ่ที่สุด นอกจากนี้ยังมีค่าอนันต์บวกและลบสำหรับการลอยฉันควรใช้สิ่งเหล่านี้แทนหรือไม่? ถ้าเป็นเช่นนั้นฉันจะระบุว่าในรหัสของฉันได้อย่างไร


6
ใน java การใช้ byte หรือ short แทน int และ float แทน double มีประสิทธิภาพมากกว่าหรือไม่?
ฉันสังเกตเห็นว่าฉันใช้ int และเพิ่มเป็นสองเท่าไม่ว่าจำนวนจะน้อยหรือมาก ดังนั้นใน java การใช้byteหรือshortแทนที่จะใช้intและfloatแทนที่จะมีประสิทธิภาพมากกว่ากันdouble? สมมติว่าฉันมีโปรแกรมที่มี ints และ doubles มากมาย จะคุ้มไหมที่จะผ่านและเปลี่ยน ints เป็นไบต์หรือกางเกงขาสั้นถ้าฉันรู้ว่าจำนวนนั้นพอดี ฉันรู้ว่า java ไม่มีประเภทที่ไม่ได้ลงชื่อ แต่มีอะไรเพิ่มเติมที่ฉันสามารถทำได้ถ้าฉันรู้ว่าจำนวนจะเป็นบวกเท่านั้น โดยประสิทธิภาพส่วนใหญ่ฉันหมายถึงการประมวลผล ฉันคิดว่าตัวเก็บขยะจะเร็วขึ้นมากถ้าตัวแปรทั้งหมดมีขนาดครึ่งหนึ่งและการคำนวณนั้นก็น่าจะเร็วขึ้นด้วย (ฉันเดาว่าเนื่องจากฉันทำงานกับ Android ฉันก็ต้องกังวลเกี่ยวกับ ram ด้วย) (ฉันจะถือว่าคนเก็บขยะจัดการกับ Objects เท่านั้นไม่ใช่แบบดั้งเดิม แต่ยังคงลบสิ่งดั้งเดิมทั้งหมดในวัตถุที่ถูกทิ้งใช่ไหม) ฉันลองใช้กับแอป Android ขนาดเล็กที่มี แต่ไม่ได้สังเกตเห็นความแตกต่างเลย (แม้ว่าฉันจะไม่ได้วัดอะไร "ทางวิทยาศาสตร์") ฉันคิดผิดหรือเปล่าที่คิดว่าควรเร็วและมีประสิทธิภาพมากกว่านี้ ฉันเกลียดที่จะผ่านและเปลี่ยนแปลงทุกอย่างในโปรแกรมขนาดใหญ่เพื่อพบว่าฉันเสียเวลาไปเปล่า ๆ จะคุ้มไหมที่จะทำตั้งแต่เริ่มต้นโครงการใหม่ (ฉันหมายความว่าฉันคิดว่าทุก ๆ อย่างจะช่วยได้ แต่ถ้าเป็นเช่นนั้นอีกครั้งทำไมดูเหมือนไม่มีใครทำ)

5
อาร์เรย์ดั้งเดิมของ Java ถูกเก็บไว้ในสแต็กหรือฮีปหรือไม่?
ฉันมีการประกาศอาร์เรย์ดังนี้: int a[]; นี่aคืออาร์เรย์ของintประเภทดั้งเดิม อาร์เรย์นี้เก็บไว้ที่ไหน? เก็บไว้ในฮีปหรือสแต็ก? นี่คือประเภทไพรม์ไทม์ชนิดintดั้งเดิมทั้งหมดจะไม่ถูกเก็บไว้ในฮีป

3
ผู้ประกอบการที่เหลืออยู่ใน int ทำให้ java.util.Objects.requireNonNull?
ฉันพยายามทำให้ได้ประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้จากวิธีการภายในบางอย่าง รหัส Java คือ: List<DirectoryTaxonomyWriter> writers = Lists.newArrayList(); private final int taxos = 4; [...] @Override public int getParent(final int globalOrdinal) throws IOException { final int bin = globalOrdinal % this.taxos; final int ordinalInBin = globalOrdinal / this.taxos; return this.writers.get(bin).getParent(ordinalInBin) * this.taxos + bin; //global parent } ในผู้สร้างโปรไฟล์ของฉันฉันเห็นว่ามีการใช้ CPU 1% …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.