1. 程式人生 > >Java類集 _集合工具類:Collections

Java類集 _集合工具類:Collections

掌握Collections 與 Collection 介面的區別

掌握Collections 類中提供的主要操作方法

在面試題目中有可能會問這樣一個問題,請回答, Collections 和 Collection 的關係。

Collections 類與 Collection 沒有直接的關係,但是與集合中的各個介面都有操作的方法支援。


驗證,空集合的操作:

public static final <T> List <T> emptyList()

public static final <T> Set <T> emptySet()

import java.util.Collections ;
import java.util.List ;
import java.util.Set ;
public class CollectionsDemo01{
	public static void main(String args[]){
		List<String> allList = Collections.emptyList() ;	// 返回空的 List集合
		Set<String> allSet = Collections.emptySet() ;	// 返回空的 List集合
		allList.add("Hello") ;	// 加入資料
	}
};

如果要想為集合中增加內容,則肯定使用add() 方法,在Collections 中也提供了專門的增加操作。

public static <T> boolean addAll (Collection<? super T> c, T... elements)

使用了可變引數,所以,可以任意輸入各種型別的資料。

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo02{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"MLDN","LXH","mldnjava") ;
		Iterator<String> iter = all.iterator() ;
		while(iter.hasNext()){
			System.out.print(iter.next() + "、") ;
		}
	}
};
選擇何種的加入操作根據人個喜好。
import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo03{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"MLDN","LXH","mldnjava") ;
		Collections.reverse(all) ;	// 內容反轉
		Iterator<String> iter = all.iterator() ;
		while(iter.hasNext()){
			System.out.print(iter.next() + "、") ;
		}
	}
};
 在Collections 中也提供了二分檢索的方法:

public static <T> int BinarySearch (List<? extends Comparable <? super T>> list, T key)

完成檢索:

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo04{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"MLDN","LXH","mldnjava") ;
		int point = Collections.binarySearch(all,"LXH") ;	// 檢索資料
		System.out.println("檢索結果:" + point) ;
		
	}
};
替換內容:

public static <T> boolean replaceAll (List <T> list, T oldVal, TnewVal)

執行替換的操作:

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo05{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"MLDN","LXH","mldnjava") ;
		if(Collections.replaceAll(all,"LXH","李興華")){// 替換內容
			System.out.println("內容替換成功!") ;
		}
		System.out.print("替換之後的結果:") ;
		System.out.print(all) ;
		
	}
};
之前曾經說過,使用TreeSet 可以進行排序操作,那麼在Collections 類中也提供了這樣的一個排序操作:

public static <T extends Comparable <? super T>> void sort(List<T> list)

完成捐棄的功能實現

import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo06{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;
		Collections.addAll(all,"B、www.mldn.cn") ;
		Collections.addAll(all,"A、www.mldnjava.cn") ;
		System.out.println("排序之前的集合:" + all) ;
		Collections.sort(all) ;
		System.out.println("排序之後的集合:" + all) ;
		
	}
};
如果要進行排序的話,則肯定物件所在的類必須實現 Comparable 介面。

交換指定位置的內容:

public static void swap(List <?> list, int i, int j)

完成一個交換內容的操作:
import java.util.Collections ;
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class CollectionsDemo07{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;	// 返回空的 List集合
		Collections.addAll(all,"1、MLDN","2、LXH","3、mldnjava") ;
		System.out.println("交換之前的集合:" + all) ;
		Collections.swap(all,0,2) ;
		System.out.println("交換之後的集合:" + all) ;
		
	}
};

總結:

1、在類集中為了方便集合的操作提供了 Collections 類,此類與 Collection 介面沒有直接的繼承或實現關係,只是對所有的介面有所支援而已。

2、開發中是否使用此類沒有明確的規定,按照個人的喜好執行即可。

相關推薦

Java _集合工具Collections

掌握Collections 與 Collection 介面的區別 掌握Collections 類中提供的主要操作方法 在面試題目中有可能會問這樣一個問題,請回答, Collections 和 Collection 的關係。 Collections 類與 Collectio

Java集合框架18Collections工具

Collections中常見方法 1、public static void sort(List list)。 2、 public static int binarySearch(List<?> list,T key)。 3、 public static void

Java框架(六)Stack及Properties子Collections工具

Stack子類 在java.util包內可以利用stack類實現棧的功能。此類定義如下: public class Stack<E> extends Vector<E> Stack類常用方法: 方法 型別

Java框架(四)集合輸出

集合輸出的4種形式:Iterator輸出、ListIterator輸出、foreach(加強型for迴圈)輸出、Enumeration輸出。 迭代輸出:Iterator Iterator(迭代器)是集合輸出操作的一個介面,Collection介面中提供了直接為Iterator介面例項

Java基礎(五十九)-集合工具Java框架)

1:Stack棧 棧是一種先進後出的資料結構。例如:在文字編輯器上都有撤銷功能,那麼每次使用的時候,最後一次的編輯操作永遠是最先撤銷的,那麼這個功能就是利用棧來實現的,棧的基本操作形式如下。 案例:實現棧的操作 import java.util.Stack;

[Google Guava] 2.3-強大的集合工具java.util.Collections中未包含的集合工具

原文連結 譯文連結 譯者:沈義揚,校對:丁一 尚未完成: Queues, Tables工具類 任何對JDK集合框架有經驗的程式設計師都熟悉和喜歡java.util.Collections包含的工具方法。Guava沿著這些路線提供了更多的工具方法:適用於所有集合的靜態方法。這是Guava最流行和

Java _範例講解多對多關係

例項要求 一個學生可以選多門課程, 門課程可以有多個學生參加,那麼這就是一個典型的多對多關係。 要完成本程式,首先應該定義兩個類:學生資訊類Student、課程資訊類Course,在一個學生類中存在一個集合,儲存全部的課程,而在課程類中也要存在一個集合,儲存全部的學生。 例

Java常用(五)之集合工具Collections

可變集合 並發 nts oid element 出現的次數 ole 最小 概述 前言    Java提供了一個操作Set、List和Map等集合的工具類:Collections,該工具類提供了大量方法對集合進行排序、查詢和修改等操作,     還提供了將集合對象置為不可

Java集合工具

Collections工具類 collections是集合中的一個工具類,封裝的都是靜態方法。 1.sort(List)方法可對list中的元素進行排序。 2.而實現sort(list,comparator)方法的呼叫,要新建class,實現Comparator介面,並複寫compare

Java框架(五)偶物件儲存Map介面

Map集合可以儲存一對關聯資料(按照“key = value”的形式)。 Map介面的常用方法 方法 型別 描述 public V put(K key, V value) 普通

Java框架(三)Set子介面

Set子介面只是簡單地繼承了Collection介面,並沒有擴充其他的方法。Set集合中不允許儲存重複的資料。在Set介面下有兩個常用的子類:HashSet、TreeSet。HashSet是雜湊存放資料,而TreeSet是有序存放的子類,預設按照字母的升序排列。在實際開發中如果沒有排序要求,

Java框架(二)List子介面

List子介面最大的功能是裡面儲存的資料可以存在重複的內容。List介面在對Collection介面擴充的方法如下: - public E get(int index):普通,取得索引編號的內容 - public E set(int index, E element):普通,修改指定索引

Java框架(一)簡介及Collection介面

簡介 在實際專案中,涉及到儲存多個物件的操作往往會用到陣列。然而傳統的陣列存在一個問題:長度是固定的。Java 2提供了一個專門實現資料結構的開發框架——類集框架,框架的程式介面和類都儲存在java.util包中,其最為核心的用處就在於實現了動態物件陣列的操作,定義了大量的操作標準,核心

java(List或Array陣列)求交集、並、差, 泛型工具

業務需要求不同型別的交集、並集、差集為避免程式碼冗餘編寫工具類。 注:list 轉陣列需傳入陣列,如果將原陣列傳入將會改變原陣列的值,同時泛型陣列又不可以例項化,解決方案:Arrays.copyOf(n,list.size())  ,使用copyOf功能,開闢返回集合的等長新陣列,避免修改原陣列。

Java資料庫的操作——DBUtils工具結果處理的方式有幾種?

public class QueryRunnerDemo{ private static Connection con=JDBCUtils.getConnection(); public static void main(String[] args) throws SQLException{ QueryRun

第一天java與mysql的連線工具

                          第一天:java與mysql的連線工具類 java最新版馬上就要收費,這無疑是這門語言的衰敗起始,畢竟在中國收費便難發展,例如c#,但是畢業設計已經選好用java來寫一個動態網站,           &n

Java集合集合工具的使用

/**  *   */ package collections; import java.util.ArrayList; import java.util.Collections; import java.util.List; /**  * @author 不負程式碼不負卿

java集合工具

java整合工具類 Set Set中不能有重複的值。 HashSet HashSet判斷兩個集合元素相等的標準是兩個元素通過equals()比較相等,並且兩個元素的hashCode()

Bag集合工具(apache-commons-collections3.2工具包)在java中的使用

 Bag 是在 org.apache.commons.collections 包中定義的介面 ,也是集合的一種擴充工具類,當然結合用JDK中的map類進行相應的邏輯處理,也能實現Bag類的功能,但

java中正則表示式工具Pattern和Macher

原地址 java.util.regex是一個用正則表示式所訂製的模式來對字串進行匹配工作的類庫包。 1.簡介: java.util.regex是一個用正則表示式所訂製的模式來對字串進行匹配工作的類庫包。 它包括兩個類:Pattern和Matcher