Java: тізімде бірегей элементтерді қамтитын тізім

Java нысандарында өсіп келе жатқан тәртіпте сақталатын және бұл нысан бұрын қосылған болса қосылмайтын тізім түрі бар ма? Мен java карталарын істей алатындығын білемін, бірақ мен қалаған нәрсені істейтін тізім түрі бар ма деп ойлаймын. Әйтпесе, менде бар әдістерді, теңдіктерді және жолдарды қосу керек, дұрыс?

19
Y U ЖОҚ қолдануға тыйым салынады?
қосылды автор r15habh, көзі
Содан кейін ArrayList туындыларын шығарып, add әдістерін қайта анықтаңыз. contains әдісі арқылы нысанның бар болуын тексеріңіз. Тапсырыс индексі арқылы кіруді білдіреді (тізім сияқты)?
қосылды автор Prince John Wesley, көзі
Жоқ, құрамында мазмұнды түрлендіруге болмайды, себебі мазмұн құрамының түріне() байланысты. Жоюға керек нәрсе - коллекцияда сақтағыңыз келетін түрдегі әдіс. (Және хэшед жинағын пайдалансаңыз, hashcode). Ең жақсы таңдау - бұл TreeSet, бұрын айтылғандай. (Немесе LinkedHashSet, егер сіз кез-келген табиғи тәртіпті емес, инструкция тапсырысын сақтау керек болса)
қосылды автор zeller, көзі
@Prince Джон Уэсли: ArrayList-ті басу - жақсы идея емес, өйткені тізімдер мағыналық емес, бірегейлік туралы емес. Бұдан басқа, дөңгелекті қайта шығаруға қарағанда жақсы шешім бар.
қосылды автор zeller, көзі
Сіз қандай тәртіпті білдіреді - енгізу немесе табиғи тәртіппен?
қосылды автор denis.solonenko, көзі
Өкінішке орай, тапсырыс туралы көбірек мәлімет беруді ұмытып кеттім. Мен нысандарды өсу тәртібінде сақтауды қалаймын. жауаптарыңыз үшін алғыс айтамыз.
қосылды автор meandbobbymcgee, көзі

8 жауаптар

Сондықтан сізге тек бірегей элементтері бар тізім керек пе? Екі нұсқа:

  • java.util.LinkedHashSet - preserves the order of insertion, has the set semantics
  • from commons-collections SetUniquieList - allows list operations like get(..) and set(..)
  • from commons-collections ListOrderedSet
37
қосылды
Ия, оның талаптары LinkedHashSet жасайтын «тәртібін сақтау» болды. Егер оған кездейсоқ қатынау қажет болса, ол басқа нұсқалардың бірін қолдана алады
қосылды автор Bozho, көзі
+1 Әскери қызметкердің талаптарын толығымен елемеуге және оған (ерікті) жиынға мұқтаж екенін айтады.
қосылды автор G_H, көзі

Сіз қандай тәртіпке байланысты екеніңізге байланысты.

14
қосылды

TreeSet трюкті жасайды. Мысал:

SortedSet myOrderedUniqueList = new TreeSet()

4
қосылды

Сіз SortedSet-ден кейін болғансыз деп ойлаймын (бұл Set-ды кеңейтетін интерфейс). Жинақ Тізімге ұқсас, бірақ ол әр мәннің біреуінен ғана тұрады.

TreeSet - SortedSet жиі пайдаланылатын іске асуы

http://download.oracle.com/javase/6 /docs/api/java/util/TreeSet.html

4
қосылды

TreeSet might be exactly what you need.

Элементтерді сұрыпталған ағаштан сақтайды. Сондықтан сіз оларды сұрыпталған тәртіппен қайталай аласыз. Бұл тізім емес, бірақ ол қосу және құрамында жақсы жұмыс істейді.

1
қосылды

It is not a list, but you can look at implementations of Set http://download.oracle.com/javase/6/docs/api/java/util/Set.html

0
қосылды

SortedSet - Set ішіндегі элементтердің сұрыпталуына кепілдік беретін Set-тің ішкі интерфейсі.

SortedSet orderedSet = new TreeSet();

Элементтің мәндерінің өсу тәртібінде қайталанбайтын элементтерді сақтау керек болғанда оларды пайдаланыңыз

0
қосылды

Java.util.LinkedHashSet функциясын бірегей сипатты (тер) пайдаланып, hashCode() және тең (Object obj)

0
қосылды