java集合(工具類Collections)

來源:互聯網
上載者:User

標籤:collections 集合工具類

/*
 *1 Collections.sort(list集合,比較子);
 *sort方法不僅可以對list進行自然排序,還可以根據需求定義比較子進行排序。
 *sort方法不能對Set集合進行排序。
 *binarySearch方法對集合進行插入,且保證集合有序,如果尋找的元素不存在
 *則返回比該元素大一個位置的元素的下標加一的相反數,他的原理是折半尋找。
 *fill方法可以將list集合中所有的元素替換成指定元素。
 *練習,將集合中部分元素替換成指定元素。
 *replaceAll方法將某一元素替換成指定元素。
 *reverse方法將所有的元素反轉。
 *swap方法將集合中指定的兩個元素置換位置。
 *shuffle方法將集合中的所有元素隨機排列一次。
 */
import java.util.*;
public class CollectionsDemo {

public static void main(String[] args) {
//sortDemo();
//maxDemo();
//binarySearchDemo();
   //fillDemo();
//replaceAllDemo();
shufleDemo();
}
public static <T> void sop(T t)
{
System.out.println(t);
}
//將集合中的所有元素隨機排列一次
public static void shufleDemo(){
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
sop(list);
Collections.shuffle(list);
sop(list);
}
//將某一元素替換成指定元素。
public static void replaceAllDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
sop(list);
//Collections.replaceAll(list,"aaa","pp");
//Collections.reverse(list);
Collections.swap(list,1, 2);
sop(list);
}
//將list集合中所有的元素替換成指定元素。
public static void fillDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
sop(list);
Collections.fill(list,"pp");
sop(list);
}

//binarySearch方法對集合進行插入,且保證集合有序.
public static void binarySearchDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
//使用sort方法進行排序
Collections.sort(list);
sop(list);
int index=Collections.binarySearch(list,"oo");
sop(index);
}
//取最大值
public static void maxDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("zz");
//使用sort方法進行排序
Collections.sort(list);
sop(list);
//使用max方法取最大值。
String max=Collections.max(list);
sop("max="+max);
}
//使用sort方法進行排序。
public static void sortDemo()
{
List<String> list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("z");
list.add("kkkk");
list.add("qq");
list.add("z");
sop(list);
Collections.sort(list,new Comlength());
sop(list);
}
}
//定義比較字串長度的比較子。
class Comlength implements Comparator<String>{


public int compare(String o1, String o2) {
if(o1.length()>o2.length())
return 1;
else if(o1.length()<o2.length())
return -1;
else return o1.compareTo(o2);
}

}


/*
 * reverseOrder()方法給TreeSet集合傳遞一個逆序比較子,將所有元素反序。
 * reverseOrder()還有一個重載方法reverseOrder(Comparator<T> cmp) 
          返回一個比較子,它強行逆轉指定比較子的順序。
 * 
 */
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;




public class CollectionsDemo2 {
public static void main(String args[])
{
orderDemo();
}

public static void orderDemo()
{
//調用有參的reverseOrder方法,首先按照其參數比較子對集合進行排序,再強行將集合元素反序。
TreeSet<String> ts=new TreeSet<String>(Collections.reverseOrder(new StrComparator2()));
ts.add("abvde");
ts.add("a");
ts.add("kk");
ts.add("ccc");
Iterator<String> it=ts.iterator();
while(it.hasNext())
{
sop(it.next());
}
}
public static <T> void sop(T t)
{
System.out.println(t);
}
}
//定義一個比較子
class StrComparator implements Comparator<String>
{
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
}
//定義一個比較子
class StrComparator2 implements Comparator<String>
{
public int compare(String o1, String o2) {
if(o1.length()>o2.length())
return 1;
if(o1.length()<o2.length())
return -1;
return o1.compareTo(o2);
}
}

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

java集合(工具類Collections)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.