日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换

發布時間:2023/12/13 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中的两个常用工具类及集合数组的相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。