java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换
為了編程人員的方便及處理數據的安全性,Java特別提供了兩個非常有用的工具類:
一、Collections
1、Collections類的特點:
集合框架的工具類。里面定義的都是靜態方法。
2、Collections和Collection有什么區別?
Collection是集合框架中的一個頂層接口,它里面定義了單列集合的共性方法。
它有兩個常用的子接口,
List:對元素都有定義索引。有序的。可以重復元素。
Set:不可以重復元素。無序。
Collections是集合框架中的一個工具類。該類中的方法都是靜態的
提供的方法中有可以對list集合進行排序,二分查找等方法。
通常常用的集合都是線程不安全的。因為要提高效率。
如果多線程操作這些集合時,可以通過該工具類中的同步方法,將線程不安全的集合,轉換成安全的。
3、Collections的常用方法
1)排序
2)取最大最小值
3)二分查找
4)替換
使用指定元素替換指定列表中的所有元素
5)反轉
6)線程同步
4、對這些方法的演示如下:
import java.util.*;
class? CollectionsDemo
{
public static void main(String[] args)
{
sortDemo();
}
public static void binarySearchDemo()
{
List list = new ArrayList();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
Collections.sort(list,new StrLenComparator());
sop(list);
int index = Collections.binarySearch(list,"aaaa");
sop("index="+index);
}
public static void maxDemo()
{
List list = new ArrayList();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
Collections.sort(list);
sop(list);
String max = Collections.max(list/*,new StrLenComparator()*/);
sop("max="+max);
}
public static void sortDemo()
{
List list = new ArrayList();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
sop(list);
Collections.sort(list);
//Collections.sort(list,new StrLenComparator());
//Collections.swap(list,1,2);
sop(list);
}
public static void replaceAllDemo()
{
List list = new ArrayList();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
sop(list);
Collections.replaceAll(list,"aaa","pp");
sop(list);
Collections.reverse(list);
sop(list);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class StrLenComparator implements Comparator
{
public int compare(String s1,String s2)
{
if(s1.length()>s2.length())
return 1;
if(s1.length()
return -1;
return s1.compareTo(s2);
}
}
二、Arrays
1、特點:
用于操作數組的工具類。里面都是靜態方法。
2、Arrays類的一個非常重要的方法
public static
ListasList(T...?a)
該方法將返回一個受指定數組支持的固定大小的列表
3、把數組變成list集合有什么好處?
可以使用集合的思想和方法來操作數組中的元素。
注意:
1)? 將數組變成集合,不可以使用集合的增刪方法。因為數組的長度是固定。如果你增刪。那么會反生UnsupportedOperationException。
2)? 如果數組中的元素都是對象。那么變成集合時,數組中的元素就直接轉成集合中的元素;如果數組中的元素都是基本數據類型,那么會將該數組作為集合中的元素存在。
4、示例代碼如下:
import java.util.*;
class? ArraysDemo
{
public static void main(String[] args)
{
int[] arr = {2,4,5};
System.out.println(Arrays.toString(arr));
String[] arr = {"abc","cc","kkkk"};
List list = Arrays.asList(arr);
//list.add("qq");//UnsupportedOperationException,
sop(list);
//int[] nums = {2,4,5};
Integer[] nums = {2,4,5};
sop(li);
}
public static boolean myContains(String[] arr,String key)
{
for(int x=0;x
{
if(arr[x].equals(key))
return true;
}
return false;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
三、集合變數組
1、實現的方法
使用Collection接口中的toArray()方法。
2、指定類型的數組到底要定義多長呢?
當指定類型的數組長度小于了集合的size,那么該方法內部會創建一個新的數組。長度為集合的size。
當指定類型的數組長度大于了集合的size,就不會新創建了數組。而是使用傳遞進來的數組。
所以創建一個剛剛好的數組最優。
3、為什么要將集合變數組?
為了限定對元素的操作。不需要進行增刪了。
4、示例代碼如下:
import java.util.*;
class? CollectionToArray
{
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add("abc1");
al.add("abc2");
al.add("abc3");
String[] arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
}
}
總結
以上是生活随笔為你收集整理的java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逍遥安卓模拟器
- 下一篇: java美元兑换,(Java实现) 美元