当前位置:首页 » 存储配置 » list如何存储数据

list如何存储数据

发布时间: 2023-06-04 15:32:53

A. 怎么将list<>保存到数据库

就是写文件啊,循环list string str = Guid.NewGuid().ToString(); string strPath = "C:\\Program Files\\" + str + ".xls"; FileStream fs = File.Create(strPath); StreamWriter sw = new StreamWriter(fs, Encoding.Unicode); string strLine = ""; // 写入列标题 for (int i = 0; i < colNames.Length; i++) { string[] col = colNames[i].Split('='); strLine = strLine + col[1].ToString() + Convert.ToChar(9); } sw.WriteLine(strLine); strLine = ""; // 写入报表数据 for (int i = 0; i < dt.Rows.Count; i++) { // for (int j = 0; j < colNames.Length; j++) { string[] col = colNames[j].Split('='); strLine = strLine + dt.Rows[i][col[0]].ToString() + Convert.ToChar(9); } sw.WriteLine(strLine); strLine = ""; } sw.Close(); fs.Close();

B. 集合(三)List

同:三个类都是实现了List接口,存储数据的特点相同:存储有序的、可重复的数据

异:

ArrayList:是用的最多得,线程不安全所以效率高。底层使用Object[] elementData数组存储

LinkedList:对于平凡的插入、删除操作效率更高,因为底层是双向链表(ArrayList的话要一个个移,但是查找多还是

ArrayList好)

Vector:1.0的时候出的古老实现类,其他包括List本身都是1.2出的;线程安全效率慢,其他和ArrayList差不多底层也是数组。接班不用

ArrayList:

jdk7.0的时候:

ArrayList list = new ArrayList();// 底层创建了长度是10的数组

当添加的元素数量超过数组容量了就扩容, 默认情况下扩容1.5倍 ,并复制到新数组里。(和StringBuilder很像)

建议开发中使用带参数的构造器:

new ArrayList(int capacity)

jdk8.0的时候:

new ArrayList();//底层初始化为{},第一次add时才创建长度为10的数组,其他一样

好处:延迟数组的创建,节省内存

Vector:

如果没给capacity一开始也初始化长度为10的数组(类ArrayList7.0),但是扩容的时候扩为原来的2倍

Linked list = new LinkedList();//内部声明了Node类型的first和last属性,默认值为null

list.add(“something”);//创建node并将数据装到node里

其中Node定义为:

//是linkedlist的一个内部类

private static class Node<E>{

E item;//数据

Node<E> next;

Node<E> prev;

Node(Node<E> prev,Node<E> next,Node<E> next){

this.item = element;

this.next = next;

this,prev = prev

}

}

List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来操作集合元素的方法。

void add(int index, Object ele):在index位置插入ele元素

boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来

Object get(int index):获取指定index位置的元素

int indexOf(Object obj):返回obj在集合中首次出现的位置,找不到就-1

int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置,找不到就-1

Object remove(int index):移除指定index位置的元素,并返回此元素

Object set(int index, Object ele):设置指定index位置的元素为ele

List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合

总结常用方法:

增:add(Object)

删:remove(Object)/remove(index)

改:set(index,Object)

查:get(index)

插入:add(index,Object)

长度:size()

遍历:

1.iterator

 2.for(Object o : list)

 3.for(int i =0;i<list.size();i++)

C. 数据库中用什么类型存储List

List类型本身是可以存放任何对象的,也就是只要是数据都可以存储的。
如:List.add(new Object());这个语句是不会报错的。由于Object是任何对象的父类,所以任何的子对象都是可以被List通过add方法进行存放的。

D. java中set集合与list集合分别是怎样存放数据的

Java中的集合包括三大类,它们是Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap。
Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator<Type>接口来自定义排序方式。
List中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。
Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。

热点内容
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:479
php查询结果数组 发布:2025-02-06 12:31:05 浏览:714
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:496
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519
台式机忘记开机密码怎么办 发布:2025-02-06 11:58:01 浏览:871
android刷新按钮 发布:2025-02-06 11:57:17 浏览:586
存储过程有输入参数和输出参数 发布:2025-02-06 11:55:32 浏览:99
成绩评选算法 发布:2025-02-06 11:42:51 浏览:997
数据库测试数据 发布:2025-02-06 11:31:05 浏览:824