当前位置:首页 » 编程语言 » 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-11-27 20:37:02 浏览:592
域名访问量查询 发布:2024-11-27 20:22:13 浏览:725
如何清理网页帐号和登录密码 发布:2024-11-27 20:18:53 浏览:372
大发明解压密码 发布:2024-11-27 20:18:52 浏览:502
蓝鸥c语言 发布:2024-11-27 20:14:38 浏览:813
阿里云高配服务器租用 发布:2024-11-27 20:13:40 浏览:758
国外图片上传 发布:2024-11-27 20:13:31 浏览:546
苹果手机怎么重置密码 发布:2024-11-27 20:10:28 浏览:533
万里红存储介质信息消除工具 发布:2024-11-27 20:10:13 浏览:387
氢怎么存储 发布:2024-11-27 20:08:46 浏览:837