Skip to content

Latest commit

 

History

History
320 lines (254 loc) 路 11.9 KB

File metadata and controls

320 lines (254 loc) 路 11.9 KB

袣芯谢谢械泻褑懈懈 懈 褋褌褉褍泻褌褍褉褘 写邪薪薪褘褏

小芯写械褉卸邪薪懈械


Enum | 袩械褉械褔懈褋谢械薪懈褟

袩褉械写褋褌邪胁谢褟褞褌 薪邪斜芯褉 谢芯谐懈褔械褋泻懈 褋胁褟蟹邪薪薪褘褏 泻芯薪褋褌邪薪褌. 袨斜褗褟胁谢械薪懈械 锌械褉械褔懈褋谢械薪懈褟 锌褉芯懈褋褏芯写懈褌 褋 锌芯屑芯褖褜褞 芯锌械褉邪褌芯褉邪 enum, 锌芯褋谢械 泻芯褌芯褉芯谐芯 懈写械褌 薪邪蟹胁邪薪懈械 锌械褉械褔懈褋谢械薪懈褟. 袟邪褌械屑 懈写械褌 褋锌懈褋芯泻 褝谢械屑械薪褌芯胁 锌械褉械褔懈褋谢械薪懈褟 褔械褉械蟹 蟹邪锌褟褌褍褞:

enum Day{
 
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}

袣芯薪褋褌褉褍泻褌芯褉褘, 锌芯谢褟 懈 屑械褌芯写褘 锌械褉械褔懈褋谢械薪懈褟

袩械褉械褔懈褋谢械薪懈褟, 泻邪泻 懈 芯斜褘褔薪褘械 泻谢邪褋褋褘, 屑芯谐褍褌 芯锌褉械写械谢褟褌褜 泻芯薪褋褌褉褍泻褌芯褉褘, 锌芯谢褟 懈 屑械褌芯写褘. 袩芯蟹胁芯谢褟械褌 褋芯蟹写邪胁邪褌褜 泻芯薪褋褌邪薪褌褘 褋 锌芯谢褟屑懈.

enum Color{
  RED("#FF0000"), BLUE("#0000FF"), GREEN("#00FF00");
  private String code;
  Color(String code){
    this.code = code;
  }
  public String getCode(){ return code;}
}

ArrayList

袣芯薪褋褌褉褍泻褌芯褉褘

ArrayList()// 褋芯蟹写邪械褌 锌褍褋褌芯泄 褋锌懈褋芯泻
ArrayList(Collection <? extends E> col)// 褋芯蟹写邪械褌 褋锌懈褋芯泻, 胁 泻芯褌芯褉褘泄 写芯斜邪胁谢褟褞褌褋褟 胁褋械 褝谢械屑械薪褌褘 泻芯谢谢械泻褑懈懈 col.

袨褋薪芯胁薪褘械 屑械褌芯写褘

  • void add(int index, E obj)// 写芯斜邪胁谢褟械褌 胁 褋锌懈褋芯泻 锌芯 懈薪写械泻褋褍 index 芯斜褗械泻褌 obj
  • boolean addAll(int index, Collection<? extends E> col) // 写芯斜邪胁谢褟械褌 胁 褋锌懈褋芯泻 锌芯 懈薪写械泻褋褍 index 胁褋械 褝谢械屑械薪褌褘 泻芯谢谢械泻褑懈懈 col. 袝褋谢懈 胁 褉械蟹褍谢褜褌邪褌械 写芯斜邪胁谢械薪懈褟 褋锌懈褋芯泻 斜褘谢 懈蟹屑械薪械薪, 褌芯 胁芯蟹胁褉邪褖邪械褌褋褟 true, 懈薪邪褔械 胁芯蟹胁褉邪褖邪械褌褋褟 false
  • E get(int index) // 胁芯蟹胁褉邪褖邪械褌 芯斜褗械泻褌 懈蟹 褋锌懈褋泻邪 锌芯 懈薪写械泻褋褍 index
  • int indexOf(Object obj) // 胁芯蟹胁褉邪褖邪械褌 懈薪写械泻褋 锌械褉胁芯谐芯 胁褏芯卸写械薪懈褟 芯斜褗械泻褌邪 obj 胁 褋锌懈褋芯泻. 袝褋谢懈 芯斜褗械泻褌 薪械 薪邪泄写械薪, 褌芯 胁芯蟹胁褉邪褖邪械褌褋褟 -1
  • E remove(int index) // 褍写邪谢褟械褌 芯斜褗械泻褌 懈蟹 褋锌懈褋泻邪 锌芯 懈薪写械泻褋褍 index, 胁芯蟹胁褉邪褖邪褟 锌褉懈 褝褌芯屑 褍写邪谢械薪薪褘泄 芯斜褗械泻褌
  • E set(int index, E obj) // 锌褉懈褋胁邪懈胁邪械褌 蟹薪邪褔械薪懈械 芯斜褗械泻褌邪 obj 褝谢械屑械薪褌褍, 泻芯褌芯褉褘泄 薪邪褏芯写懈褌褋褟 锌芯 懈薪写械泻褋褍 index
  • void sort(Comparator<? super E> comp) // 褋芯褉褌懈褉褍械褌 褋锌懈褋芯泻 褋 锌芯屑芯褖褜褞 泻芯屑锌邪褉邪褌芯褉邪 comp
  • List<E> subList(int start, int end) // 锌芯谢褍褔邪械褌 薪邪斜芯褉 褝谢械屑械薪褌芯胁, 泻芯褌芯褉褘械 薪邪褏芯写褟褌褋褟 胁 褋锌懈褋泻械 屑械卸写褍 懈薪写械泻褋邪屑懈 start 懈 end

Map | 小谢芯胁邪褉褜

袠薪褌械褉褎械泄褋 Map 褋芯写械褉卸懈褌 芯褋薪芯胁薪褘械 褉械邪谢懈蟹邪褑懈懈: Hashmap, LinkedHashMap, Hashtable, TreeMap.

HashMap

袣芯谢谢械泻褑懈褟 "泻谢褞褔-蟹薪邪褔械薪懈械", 胁褋械 泻谢褞褔懈 褍薪懈泻邪谢褜薪褘 胁 褉邪屑泻邪褏 芯斜褗械泻褌邪 Program.

袨斜谢械谐褔邪械褌 锌芯懈褋泻 蟹薪邪褔械薪懈褟, 械褋谢懈 懈蟹胁械褋褌械薪 泻谢褞褔 - 褍薪懈泻邪谢褜薪褘泄 懈褌械薪写懈褎懈泻邪褌芯褉.

小芯蟹写邪薪懈械 褋谢芯胁邪褉褟. 袟邪锌芯谢薪械薪懈械 懈 锌芯谢褍褔械薪懈械 蟹薪邪褔械薪懈泄

HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "one"); // 写芯斜邪胁谢械薪懈械 褝谢械屑械薪褌邪, 械褋谢懈 胁 泻芯谢谢械泻褑懈懈 褍卸械 械褋褌褜 褝谢械屑械薪褌 褋 锌芯写芯斜薪褘屑 泻谢褞褔芯屑, 褌芯 芯薪 锌械褉械蟹邪锌懈褋褘胁邪械褌褋褟
hashMap.put(2, "two");
hashMap.put(3, "three");
hashMap.get(1); // 袩芯谢褍褔械薪懈械 蟹薪邪褔械薪懈褟 锌芯 泻谢褞褔褍 懈谢懈 null, 械褋谢懈 蟹薪邪褔械薪懈械 芯褌褋褍褌褋褌胁褍械褌
hashMap.get(2);
hashMap.get(3);

袩械褉械斜芯褉 褋谢芯胁邪褉褟 懈 胁褘胁芯写 褋芯写械褉卸懈屑芯谐芯 薪邪 褝泻褉邪薪

for (Map.Entry entry : hashMap.entrySet()) // entrySet() - 胁芯蟹胁褉邪褖邪械褌 屑薪芯卸械褋褌胁芯 褝谢械屑械薪褌芯胁 泻芯谢谢械泻褑懈懈 
{
    System.out.print("key: " + entry.getKey()); // getKey() - 锌芯谢褍褔懈褌褜 泻谢褞褔 褋褍褖薪芯褋褌懈
    System.out.println("; value: " + entry.getValue()); // getKey() - 锌芯谢褍褔懈褌褜 蟹薪邪褔械薪懈械 褋褍褖薪芯褋褌懈
}

袣芯薪胁械褉褌邪褑懈褟 Map 胁 List

// key list
List<Integer> keyList = new ArrayList<>(map.keySet());
// value list
List<String> valueList = new ArrayList<>(map.values());
// key-value list
List<Map.Entry<Integer, String>> entryList = new ArrayList<>(map.entrySet());

小褔械褌褔懈泻 泻谢褞褔械泄 Map

//map<String, Int> 
while ((line = bufferedReader.readLine()) != null) {
            String[] words = line.split("\\W"); {
                for (String word : words) {
                    if (word.equals("")) {
                        continue;
                    }
                    if (!map.containsKey(word)) {
                        map.put(word, 1);
                    } else {
                        map.put(word, map.get(word) + 1);
                    }
                }
            }
        }

袨褋薪芯胁薪褘械 屑械褌芯写褘

void clear() // 芯褔懈褖邪械褌 泻芯谢谢械泻褑懈褞
int size() // 胁芯蟹胁褉邪褖邪械褌 泻芯谢懈褔械褋褌胁芯 褝谢械屑械薪褌芯胁 泻芯谢谢械泻褑懈懈
boolean containsKey(Object k) // 胁芯蟹胁褉邪褖邪械褌 true, 械褋谢懈 泻芯谢谢械泻褑懈褟 褋芯写械褉卸懈褌 泻谢褞褔 k
boolean containsValue(Object v) // 胁芯蟹胁褉邪褖邪械褌 true, 械褋谢懈 泻芯谢谢械泻褑懈褟 褋芯写械褉卸懈褌 蟹薪邪褔械薪懈械 v
int size() // 胁芯蟹胁褉邪褖邪械褌 泻芯谢懈褔械褋褌胁芯 褝谢械屑械薪褌芯胁 泻芯谢谢械泻褑懈懈
replace(泻谢褞褔, 蟹薪邪褔械薪懈械); // 蟹邪屑械薪懈褌褜 蟹薪邪褔械薪懈械 褝谢械屑械薪褌邪 锌芯 泻谢褞褔褍
remove(泻谢褞褔); // 褍写邪谢械薪懈械 褝谢械屑械薪褌邪 锌芯 泻谢褞褔褍     褔

LinkedHashMap

LinkedHashMap - 芯褌芯斜褉邪卸械薪懈械 褋 蟹邪锌芯屑懈薪邪薪懈械屑 锌芯褉褟写泻邪, 胁 泻芯褌芯褉芯屑 写芯斜邪胁谢褟谢懈褋褜 褝谢械屑械薪褌褘, 褉邪蟹褉械褕邪械褌 锌械褉械斜芯褉 胁 锌芯褉褟写泻械 胁褋褌邪胁泻懈.

// ====LinkedHashMap====
System.out.println("LinkedHashMap");
LinkedHashMap <Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1, "one");
linkedHashMap.put(3, "three");
linkedHashMap.put(4, "four");
linkedHashMap.put(2, "two");
for (Map.Entry entry : linkedHashMap.entrySet()) {
    System.out.println("key: " + entry.getKey() + "; value = " + entry.getValue());
}

// ====HashMap====
System.out.println("\nHashMap");
HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "one");
hashMap.put(3, "three");
hashMap.put(4, "four");
hashMap.put(2, "two");
for (Map.Entry entry : hashMap.entrySet()) {
    System.out.println("key: " + entry.getKey() + "; value = " + entry.getValue());
}

// 袪械蟹褍谢褜褌邪褌
LinkedHashMap
key: 1; value = one
key: 3; value = three
key: 4; value = four
key: 2; value = two

HashMap
key: 1; value = one
key: 2; value = two
key: 3; value = three
key: 4; value = four

TreeMap

Map 褋芯褉褌懈褉褍褞褖邪褟 褝谢械屑械薪褌褘 锌芯 泻谢褞褔褍. 袩芯蟹胁芯谢褟械褌 泻邪泻 褋芯蟹写邪胁邪褌褜 懈蟹薪邪褔邪谢褜薪芯 芯褌褋芯褉褌懈褉芯胁邪薪薪褘械 屑邪锌褘 懈谢懈 褋芯褉褌懈褉芯胁邪褌褜 褍卸械 褋褍褖械褋褌胁褍褞褖懈械.

小芯褉褌懈褉芯胁泻邪 泻谢褞褔械泄 褋褍褖械褋褌胁褍褞褖械泄 Map

LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>(); // 薪械芯褌褋芯褉褌懈褉芯胁邪薪薪邪褟 屑邪锌邪
linkedHashMap.put("xxx", 5);
linkedHashMap.put("a", 3);
linkedHashMap.put("ccc", 1);
linkedHashMap.put("b", 2);
for (Map.Entry entry : linkedHashMap.entrySet()) {
    System.out.println("key: " + entry.getKey() + "; value: " + entry.getValue());
}

System.out.println("\n");

TreeMap<String, Integer> treeMap = new TreeMap<>(linkedHashMap); // 袩械褉械写邪褔邪 薪械芯褌褋芯褉褌懈褉芯胁邪薪薪芯泄 屑邪锌褘 写谢褟 褋芯褉褌懈褉芯胁泻懈
for (Map.Entry entry : treeMap.entrySet()) {
    System.out.println("key: " + entry.getKey() + "; value: " + entry.getValue());
}

//袪械蟹褍谢褜褌邪褌
key: xxx; value: 5
key: a; value: 3
key: ccc; value: 1
key: b; value: 2

key: a; value: 3
key: b; value: 2
key: ccc; value: 1
key: xxx; value: 5

HashTable

HashTable 褏褉邪薪懈褌 锌邪褉褘 泻谢褞褔械泄/蟹薪邪褔械薪懈泄 胁 褏褝褕-褌邪斜谢懈褑械. 袙 泻邪褔械褋褌胁械 泻谢褞褔邪 胁褘褋褌褍锌邪械褌 褏褝褕-泻芯写 锌械褉械写邪薪薪芯谐芯 芯斜褗械泻褌邪, 泻芯褌芯褉褘泄 懈褋锌芯谢褜蟹褍械褌褋褟 泻邪泻 懈薪写械泻褋.


Set | 袦薪芯卸械褋褌胁邪

袣邪卸写褘泄 褝谢械屑械薪褌 褏褉邪薪懈褌褋褟 褌芯谢褜泻芯 胁 芯写薪芯屑 褝泻蟹械屑锌谢褟褉械, 褉邪蟹薪褘械 褉械邪谢懈蟹邪褑懈懈 Set 懈褋锌芯谢褜蟹褍褞褌 褉邪蟹薪褘泄 锌芯褉褟写芯泻 褏褉邪薪械薪懈褟 褝谢械屑械薪褌芯胁.

袝褋谢懈 锌芯褉褟写芯泻 褏褉邪薪械薪懈褟 胁邪卸械薪, 锌褉懈屑械薪褟械褌褋褟 TreeSet, 胁 泻芯褌芯褉芯屑 芯斜褗械泻褌褘 褏褉邪薪褟褌褋褟 芯褌褋芯褉褌懈褉芯胁邪薪薪褘屑懈 锌芯 胁芯蟹褉邪褋褌邪薪懈褞 懈谢懈 LinkedHashSet. 褋 褏褉邪薪械薪懈械屑 褝谢械屑械薪褌芯胁 胁 锌芯褉褟写泻械 写芯斜邪胁谢械薪懈褟

HashSet

小芯蟹写邪薪懈械 屑薪芯卸械褋褌胁邪 懈 蟹邪锌芯谢薪械薪懈械 褝谢械屑械薪褌邪屑懈

HashSet<String> countries = new HashSet<>(); // 小芯蟹写邪薪懈械 屑薪芯卸械褋褌胁邪
countries.add("袪芯褋褋懈褟"); // 写芯斜邪胁谢械薪懈械 褝谢械屑械薪褌邪 胁 屑薪芯卸械薪褋褌胁芯
countries.add("肖褉邪薪褑懈褟"); // 械褋谢懈 褌邪泻芯谐芯 褝谢械屑械薪褌邪 薪械褌
countries.add("袠褋锌邪薪懈褟"); // 胁芯蟹胁褉. true - 械褋谢懈 写芯斜邪胁懈谢褋褟 褝谢械屑械薪褌 懈薪邪褔械 false

袩芯谢褍褔械薪懈械 屑薪芯卸械褋褌胁邪 | 屑械褌芯写 iterator()

iterator() - 屑械褌芯写 锌芯蟹胁芯谢褟褞褖懈泄 锌芯谢褍褔懈褌褜 胁褋械 屑薪芯卸械褋褌胁芯 褝谢械屑械薪褌芯胁.

Iterator<String> iterator = countries.iterator(); // 小芯蟹写邪薪懈械 懈褌械褉邪褌芯褉邪
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

袨褋薪芯胁薪褘械 屑械褌芯写褘

int size() // 褉邪蟹屑械褉
boolean isEmpty()
boolean contains(Object o)
boolean addAll(Collection c)
Object[] toArray()
boolean remove(Object o)
boolean removeAll(Collection c)
void clear()

LinkedHashSet | 协谢械屑械薪褌褘 胁 锌芯褉褟写泻械 写芯斜邪胁谢械薪懈褟

袧械 写芯斜邪胁谢褟械褌 薪芯胁褘褏 屑械褌芯写芯胁. 谢邪褋褋 锌芯写写械褉卸懈胁邪械褌 褋胁褟蟹薪褘泄 褋锌懈褋芯泻 褝谢械屑械薪褌芯胁 薪邪斜芯褉邪 胁 褌芯屑 锌芯褉褟写泻械, 胁 泻芯褌芯褉芯屑 芯薪懈 胁褋褌邪胁谢褟谢懈褋褜. 协褌芯 锌芯蟹胁芯谢褟械褌 芯褉谐邪薪懈蟹芯胁邪褌褜 褍锌芯褉褟写芯褔械薪薪褍褞 懈褌械褉邪褑懈褞 胁褋褌邪胁泻懈 胁 薪邪斜芯褉.

TreeSet | 协谢械屑械薪褌褘 芯褌褋芯褉褌懈褉芯胁邪薪薪褘械 锌芯 胁芯蟹褉邪褋褌邪薪懈褞

Random random = new Random();
SortedSet<Integer> sortedNumbers = new TreeSet<>(); //小芯蟹写邪懈械 TreeSet

for (int i = 0; i < 5; i++) {
    sortedNumbers.add(random.nextInt(10));
}

// 袪械蟹褍谢褜褌邪褌褘 褉邪斜芯褌褘
协谢械屑械薪褌褘 芯褌褋芯褉褌懈褉芯胁邪薪褘 锌芯 胁芯蟹褉邪褋褌邪薪懈褞, 褉邪蟹屑械褉 屑薪芯卸械褋褌胁邪 屑械薪褟械褌褋褟, 褌邪泻 泻邪泻 锌芯胁褌芯褉褟褞褖懈械褋褟
褝谢械屑械薪褌褘 薪械 写芯斜邪胁谢褟褞褌褋褟,  懈谐薪芯褉懈褉褍褞褌褋褟
[0, 4, 6, 9]
[0, 1, 2, 4, 8]
[2, 3, 9]

EnumSet

小芯写械褉卸懈褌 褌芯谢褜泻芯 蟹薪邪褔械薪懈褟 锌械褉械褔懈褋谢械薪懈褟, 锌褉懈薪邪写谢械卸邪褖懈械 泻 褌芯屑褍 卸械 褌懈锌褍 锌械褉械褔懈褋谢械薪懈褟, 褝谢械屑械薪褌褘 褏褉邪薪褟褌褋褟 胁 锌芯褉褟写泻械 懈褏 褋芯褏褉邪薪械薪懈褟. 袨薪 薪械 锌芯蟹胁芯谢褟械褌 锌芯谢褜蟹芯胁邪褌械谢褞 写芯斜邪胁谢褟褌褜 蟹薪邪褔械薪懈褟 NULL 懈 褋芯蟹写邪械褌 懈褋泻谢褞褔械薪懈械 NullPointerException