集合的遍历和扩容原理

 一.泛型集合

双列泛型的三种遍历:

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+Value
item.Key
item.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值