當前位置:首頁 » 編程語言 » javalist轉換

javalist轉換

發布時間: 2024-05-09 00:15:36

① 在java中如何把list轉換成List<>

Java在JDK1.4之後,提供了泛型功能,可以在運行之前確定運行類型,同樣也可以運用到集合當中,通過泛型,支持在集合裡面在套用集合,代碼:
ArrayList<ArrayList<String>> listall = new ArrayList<ArrayList<String>>();
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
ArrayList<String> list3 = new ArrayList<String>();
listall.add(list1);
listall.add(list2);
listall.add(list3);
這樣就可以把3個list放到一個list裡面。

② java 將返回list型 改為 返回數組型

兩種方案:
第一種:(推薦使用這種)
只要修改返回類型,並把
return tmplist改成return tmplist.totoArray();就行了 取出的是Object數組,需要強制轉換成HashMap;

//返回值是數組
public Object[] quyListBySqlAndParams(String querystr, List params,int dno) throws SQLException {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rst = null;
ResultSetMetaData rsmd = null;

List tmplist=new ArrayList();

try{

conn = myDataUtil.getConnection(dno);
pstmt = conn.prepareStatement(querystr);
//參數賦值
for(int i=0;i<params.size();i++){
String param = params.get(i)==null?"":params.get(i).toString().trim();
pstmt.setString(i+1,param);
}

rst = pstmt.executeQuery();
rsmd = rst.getMetaData();

while (rst.next()) {

Map tmpmap = new HashMap();
for ( int i = 1; i <= rsmd.getColumnCount(); i++ ){
tmpmap.put(rsmd.getColumnName(i), rst.getObject(i));
}
tmplist.add(tmpmap);
}

}catch(Exception e){
System.out.println("pubgetstr"+e.toString()+querystr);
}finally{
myDataUtil.free(rst,pstmt,conn);

//這里調用toArray()方法返回數組
return tmplist.toArray();
}
}


方案二:
原理就是將結果集的游標定位到最後一行,然後通過返回行號確定記錄數,從而確定數組的長度。然後再將游標回退到beforefirst

但是一定要注意 這么做有個地方要考慮, 默認的ResultSet類型是TYPE_FORWARD_ONLY,只向前的游標,不允許指針回退;在定義時要將默認的ResultSet類型里的TYPE_FORWARD_ONLY改成ResultSet.TYPE_SCROLL_INSENSITIVE,把你那句改成這個
pstmt = conn.prepareStatement(querystr, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

//返回數組
public Object[] quyListBySqlAndParams(String querystr, List params,int dno) throws SQLException {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rst = null;
ResultSetMetaData rsmd = null;

Object[] tmpAarry;

try{

conn = myDataUtil.getConnection(dno);
//注意 這里做了修改 pstmt=conn.prepareStatement(querystr,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

//參數賦值
for(int i=0;i<params.size();i++){
String param = params.get(i)==null?"":params.get(i).toString().trim();
pstmt.setString(i+1,param);
}

rst = pstmt.executeQuery();
rsmd = rst.getMetaData();

// 這里做了修改
rst.last();
int count = rst.getRow();
tmpAarry = new Object[count];
rst.beforeFirst();

while (rst.next()) {

Map tmpmap = new HashMap();
int j = 0;
for ( int i = 1; i <= rsmd.getColumnCount(); i++ ){
tmpmap.put(rsmd.getColumnName(i), rst.getObject(i));
}
tmpAarry[j]=tmpmap;
j++;
}

}catch(Exception e){
System.out.println("pubgetstr"+e.toString()+querystr);
}finally{
myDataUtil.free(rst,pstmt,conn);
// 返回的是個數組
return tmpAarry;
}
}

好了,這兩種方法的結構是一樣的,看是你也看到了,自己寫有多麻煩,還要考慮很多意想不到的問題,比如那個滾動結果集。所以能用java api中提供的最好用,那都是經得住考驗的,而且方便的很。

③ java 怎麼把數組轉為list

1.List轉換成為數組。(這里的List是實體是ArrayList)

調用ArrayList的toArray方法。

toArray

public <T> T[] toArray(T[]
a)返回一個按照正確的順序包含此列表中所有元素的數組;返回數組的運行時類型就是指定數組的運行時類型。如果列表能放入指定的數組,則返回放入此列表元
素的數組。否則,將根據指定數組的運行時類型和此列表的大小分配一個新的數組。

如果指定的數組能容納列表並有剩餘空間(即數組的元素比列表的多),那麼會將數組中緊跟在集合末尾的元素設置為 null。這對確定列表的長度很有用,但只 在調用方知道列表中不包含任何 null 元素時才有用。

指定者:

介面 Collection<E> 中的 toArray

指定者:

介面 List<E> 中的 toArray

覆蓋:

類 AbstractCollection<E> 中的 toArray

參數:

a - 要存儲列表元素的數組,如果它足夠大的話;否則,它是一個為存儲列表元素而分配的、具有相同運行時類型的新數組。

返回:

包含列表元素的數組。

拋出:

ArrayStoreException - 如果 a 的運行時類型不是此列表中每個元素的運行時類型的超類型。

具體用法:

List list = new ArrayList();
list.add("1");
list.add("2");
final int size =list.size();
String[] arr = (String[])list.toArray(new String[size]);

2.數組轉換成為List。

調用Arrays的asList方法.

asList

public static <T>
List<T> asList(T... a)返回一個受指定數組支持的固定大小的列表。(對返回列表的更改會「直寫」到數組。)此方法同
Collection.toArray 一起,充當了基於數組的 API 與基於 collection 的 API
之間的橋梁。返回的列表是可序列化的,並且實現了 RandomAccess。

此方法還提供了一個創建固定長度的列表的便捷方法,該列表被初始化為包含多個元素:

List stooges = Arrays.asList("Larry", "Moe", "Curly");

參數:

a - 支持列表的數組。

返回:

指定數組的列表視圖。

另請參見:

Collection.toArray()

具體用法:

String[] arr = new String[] {"1", "2"};

List list = Arrays.asList(arr);

④ java,list數組轉換成map


importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;

publicclassTestArray{

publicstaticvoidmain(String[]args){
/**
*初始化一個List,存放String數組,數組的第一位是amount,第二位是year,第三位是month,第四位是day。
*/
List<String[]>arr=newArrayList<String[]>();
arr.add(newString[]{"89","2015","06","21"});
arr.add(newString[]{"89","2015","06","22"});
arr.add(newString[]{"89","2015","06","23"});

/**
*創建一個StringBuffer臨時存放map.key。
*/
StringBufferkey=newStringBuffer();
/**
*建一個map對象,
*/
Map<String,String>map=newHashMap<String,String>();
for(inti=0;i<arr.size();i++){
//獲取List中的String數組元素。
String[]element=arr.get(i);
//數組的第二位、第三位、第四位拼接成key。
key.append(element[1]).append(element[2]).append(element[3]);

//數組的第一位拼接成value,初始化map。
map.put(key.toString(),element[0]);

//臨時的StringBuffer清空內容以便下次循環繼續使用。
key.delete(0,key.length());
}

//列印map
System.out.println(map.toString());

}
}

輸出效果:

⑤ java中數組如何轉換成List

//小例子
//這里注意的是,不能是基本類型,必須是包裝類Byte[]可以。
publicclassDemo{
publicstaticvoidmain(String[]args)throwsException{
String[]arr={"asd","sd","df"};
Listlist=Arrays.asList(arr);
System.out.println(list);
}
}

⑥ JAVA中的List的使用

List<E>([]內的內容可省略),與數組類似:
實例化:List[<數據類型>] list = new ArrayList[<數據類型>]();
獲得集合內元素個數:list.size();

添加元素:
默認添加:list.add(e);
指定下標添加(添加後下標後的元素向後挪一位):list.add(index,e);

刪除元素:
返回是否刪除:list.remove(e);
直接刪除指定下標的元素(只刪除找到的第一個相符合的元素):list.remove(index);

替換元素(替換掉指定下標的元素):list.set(index,e);

取出元素:list.get(index);

清空集合:list.clear();

判斷集合中是否存在某個元素(存在返回true,不存在返回false):list.contains(e);

對比兩個集合中的所有元素:
兩個對象一定相等:list.equals(list2);
兩個對象不一定相等:list.hashCode() == list2.hashCode();
(兩個相等對象的equals方法一定為true, 但兩個hashcode相等的對象不一定是相等的對象。)

獲得元素下標:
元素存在則返回找到的第一個元素的下標,不存在則返回-1:list.indexOf(e);
元素存在則返回找到的最後一個元素的下標,不存在則返回-1:list.lastIndexOf(e);

判斷集合是否為空(空則返回true,非空則返回false):list.isEmpty();

返回Iterator集合對象:list.iterator();

將集合轉換為字元串:list.toString();

截取集合(從fromIndex開始在toIndex前結束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);

將集合轉換為數組:
默認類型:list.toArray();
指定類型(objects為指定類型的數組對象,並將轉換好的數組賦值給objects數組):list.toArray(objects);

以上為List常用的方法。

熱點內容
輔助官網源碼 發布:2024-05-20 07:31:48 瀏覽:865
androidbutton的屬性 發布:2024-05-20 07:18:58 瀏覽:636
查找重復欄位的sql 發布:2024-05-20 07:18:17 瀏覽:302
我的世界創造房子伺服器 發布:2024-05-20 06:48:36 瀏覽:818
小米筆記本存儲不夠 發布:2024-05-20 06:32:53 瀏覽:784
dirt5需要什麼配置 發布:2024-05-20 06:02:58 瀏覽:543
怎麼把電腦鎖上密碼 發布:2024-05-20 05:19:09 瀏覽:985
安卓為什麼連上wifi後沒有網路 發布:2024-05-20 05:17:50 瀏覽:419
安卓usb在設置哪裡 發布:2024-05-20 05:03:03 瀏覽:187
綏化編程 發布:2024-05-20 04:59:44 瀏覽:991