List.Set集合的簡單應用與方法

                                           List 集合

常用的list集合是ArrayList:一次只能儲存一個元素!
1.   在創建這個集合的對象時:

一定要指定這個集合存儲的數據類型! 否則這個集合的數據是不安全的。

2.   與數組的區別:
①數組的長度是固定的, 集合的長度是可變的。
②數組可以存儲基本類型和引用數據類型的數據.集合不可以存儲基本數據類型, 只能存儲引用數據類型

3.   如果集合中需要存儲基本類型的數據, 集合的類型必須指定爲對應的包裝類型

4.    list集合中的常用方法 (E:element元素)

(1)add(E): 往集合中添加一個元素
(2)add(index,E): 把元素添加到指定的位置, 原來的內容會被擠到後面

(3)get(index): 通過索引獲取集合中對應的內容

(4)size(): 獲取集合的大小

(5)remove(index): 根據索引刪除指定位置的內容, 返回被刪除的元素
(6)remove(Object): 刪除集合中的指定對象, 如果有多個相同的對象, 只會刪除第一個

(7)contains(E): 判斷集合中是否包含指定的元素

(8)indexOf(E): 獲取元素在集合中第一次出現的位置

(9)lastIndexOf(E): 獲取元素在集合中最後一次出現的位置

(10)isEmpty(): 判斷集合中的元素是否爲空

(11)set(index,E):把指定位置的內容修改掉,返回的是被修改的內容

(12)clear():清空集合中得所有元素

(13)toArray():把集合轉換成Object數組,注意不能轉換成其他數組

因爲toArray方法引入的比範型晚,爲了兼容早期java代價,toArray保留了返回類型爲Object


舉例:實現1到101能被7整除的數,並保存到數組裏面。

在java中數組的大小是固定的,在不知道長度的情況下,使用數組可以採用先定義集合,最後集合轉數組,可以實現一樣的效果

代碼實現:

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;


public class Main2{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer>lists = new ArrayList<>();//定義了集合
        for (int i = 1; i <=101; i++) {
			if(i%7==0) {
				lists.add(i);//添加元素
			}
		}
        		Object[]arr = lists.toArray();//轉成數組
        		for (int j = 0; j < arr.length; j++) {//遍歷輸出
					System.out.println(arr[j]);
				}
    
    }
    
}

在這裏需要注意一個地方:

必須要使用包裝類,不然會報錯!

相關問題:

(1)關於remove();

1.

2.

(2)list集合排序:

Collections.sort

                                              Set集合

1.    Set集合特點:

(1)一次只能存一個元素

(2)不能儲存重複的元素

(3)儲存順序和取出來的順序不一定一致

2.    常用的方法:

TreeSet方法,HashSet方法

3.    TreeSet簡介:

(1)TreeSet是一個有序集合

(2)TreeSet存儲唯一的元素

(3)她按升序對元素進行排序

例如:

4.    TreeSet方法:

TreeSet的方法總結:

修飾符和類型 方法和描述
boolean add(E e)

將指定的元素添加到這套,如果它已不存在。

boolean addAll(Collection<? extends E> c)

在加入這一組指定的集合中添加的所有元素。

E ceiling(E e)

返回最小的元素在這一組大於或等於給定的元素,則null如果沒有這樣的元素。

void clear()

從這一組中移除所有元素。

Object clone()

返回此TreeSet實例淺表副本。

Comparator<? super E> comparator()

返回用於排序在這集,或空元素,如果這套使用自然排序其元素的比較。

boolean contains(Object o)

如果此集合包含指定的元素,則返回true 。

Iterator<E> descendingIterator()

返回迭代器中這套降序排序的元素。

NavigableSet<E> descendingSet()

返回逆序視圖中包含的元素這一套。

E first()

返回第一個 (最低) 元素當前在這一套。

E floor(E e)

返回的最大元素在這一組小於或等於null如果沒有這樣的元素。

SortedSet<E> headSet(E toElement)

返回其元素是嚴格小於toElement這套的部分視圖.

NavigableSet<E> headSet(E toElement, boolean inclusive)

返回一個視圖的這部分設置的元素都小於 (或等於,如果inclusive是真的) toElement.

E higher(E e)

返回最小的元素在這套嚴格大於給定的元素,則null如果沒有這樣的元素。

boolean isEmpty()

如果此集不包含任何元素,則返回true 。

Iterator<E> iterator()

返回迭代器中這套以升序排序的元素。

E last()

在這套目前返回的最後一個 (最高) 的元素。

E lower(E e)

在這一套嚴格的小於給定的元素,則null返回的最大元素,如果沒有這樣的元素。

E pollFirst()

檢索和刪除第一個 (最低) 元素,或如果此集合爲空,則返回null 。

E pollLast()

檢索和刪除的最後一個 (最高) 的元素,或如果此集合爲空,則返回null 。

boolean remove(Object o)

從這一組中移除指定的元素,如果它存在。

int size()

在這套 (其基數) 中返回的元素的數目。

NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

返回此集的部分視圖的元素範圍從fromElementtoElement.

SortedSet<E> subSet(E fromElement, E toElement)

返回視圖的部分的這一套的元素範圍從fromElement,具有包容性,到toElement,獨家。

SortedSet<E> tailSet(E fromElement)

返回其元素是大於或等於fromElement這套的部分視圖.

NavigableSet<E> tailSet(E fromElement, boolean inclusive)

返回其元素是大於 (或等於,如果inclusive是真的) 這套的部分視圖fromElement.

 

看概念肯定會很生澀吧,來一起看一道題吧hhh!

舉例說明:杭電oj2034

代碼實現:

import java.math.BigInteger;
    import java.util.*;

    public class Main {


        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
            int n = sc.nextInt();
            int m = sc.nextInt();
            if(n==0&m==0){
                break;
            }
            Set<Integer>sets= new TreeSet<>();//建立set集合
                for (int i = 0; i <n ; i++) {
                    sets.add(sc.nextInt());//添加set元素
                }
                for (int i = 0; i <m ; i++) {
                    int a = sc.nextInt();
                    if(sets.contains(a)){//如果包含這個元素,證明元素重複,集合相減應無重複元素
                        sets.remove(a);//所以移除這個元素
                    }
                }
     
                if(sets.isEmpty()){//如果集合是空的證明無元素
                    System.out.println("NULL");
                }else{
                    for (Integer i:sets){
      
                            System.out.print(i+" ");
                 
                    }

                    System.out.println();
                }
                }

            }
        }

 

                                        Map集合

額  (⊙o⊙)…暫時特麼還不會,等會了時候我再寫上例題還有詳解O(∩_∩)O哈哈~

若有錯誤的地方歡迎指出謝謝!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章