集合的遍历和扩容原理

it2026-04-07  7

 一.泛型集合

双列泛型的三种遍历:

Dictionary<string,Student> dic=new Dictionary<string,Student>();dic.add("张三",stu1);dic.add("李四",stu2);

 (1)

foreach(string item in dic.Keys){Student stu=dic[item];}

    (2)

foreach(Student item in dic.Values){     Console.WriteLine(item);}

    (3)

foreach(KeyValuePair<string,Student> item in dic){//item=key+Valueitem.Keyitem.Value}

//数据绑定 List<UserInfo> list ----单列绑定dgvList.DataSource=new BindingList<UserInfo>(list);--------------------------------------------------------------

双列绑定Dictionary<string,Student> dic=new Dictionary<string,Student>();BindingSource bs=new BindingSource();bs.DataSource=dic.Values;dgvList.DataSource=bs;

 

二.集合的扩容原理

 

 

当调用Add()方法时,先判断集合中元素的个数和保存元素的个数的数组长度是否一致,再决定是否扩容

如果数组长度小于需要长度就扩容,

如果数组长度不等于0就将数组的长度*2

***注:扩容的上限为0x7fefffff约21亿

再调用Capacity的set方法利用数组间的copy方法(新数组的长度是旧数组的二倍)给数组扩容

三.方法重载可变参数

C#      可变的public void say(params object[] objs){}public static int ExecuteNonQuery(string cmdTxt, params SqlParameter[] parames){return ExecuteNonQuery(cmdTxt, CommandType.Text, parames);}

JAVA

public ResultSet executeQuery(String sql,Object... objs) throws Exception{    con=getConnection();    ps = con.prepareStatement(sql);    for (int i = 0; i < objs.length; i++) {    ps.setObject(i+1, objs[i]);       }       rs= ps.executeQuery();       return rs;}

四.对象间的交互.

 UML(Uniform Model Language)统一建模语言:

 StarUML:

  类图

用例图

序列图/时序图

转载于:https://www.cnblogs.com/wy0119/p/7016920.html

最新回复(0)