list集合的特点有几个实体类,分别有什么特点?

List集合操作一:遍历与查找_博客园
当前位置: >
>List集合操作一:遍历与查找
List集合操作一:遍历与查找
& 作者:Rising_Sun & 来源: 博客园-lxblog &
首先声明本文不是讨论Linq,在Framwork2.0中也不支持linq操作的,主要是记录一下List集合的使用方法。
List&T& 一般主要用到的查找遍历方法:Find:搜索指定谓词所定义条件相匹配的元素,并返回整个List&T&中的第一个匹配元素。FindLast:搜索指定谓词所定义条件相匹配的元素,并返回整个List&T&中的最后一个匹配元素。Find:搜索指定谓词所定义条件相匹配的元素,并返回整个List&T&中的第一个匹配元素。FindLast:搜索指定谓词所定义条件相匹配的元素,并返回整个List&T&中的最后一个匹配元素。FindAll:检索与指定谓词定义条件匹配的所有元素。FindIndex:搜索指定谓词所定义条件相匹配的元素,并返回整个List&T&中的第一个匹配元素从0开始的索引,未找到返回-1。FindLastIndex:搜索指定谓词所定义条件相匹配的元素,并返回整个List&T&中的最后一个匹配元素从0开始的索引,未找到返回-1。ForEach:对每个List&T&执行指定的操作。参数 Action委托。
注意:List&T&Find(), List&T&FindLast()的不同是, List&T&Find()由Index=0开始寻找, 而List&T&FindLast()由Index = List&T&.Count - 1开始寻找.
我们创建一个控制台程序并参照一下代码实例:
首先创建一个实体类Player:
using System.Collections.G
namespace ListDemo1
public class Player
public Player(int id, string name, string team)
this.Name =
this.Team =
public int Id { get; set; }
public string Name { get; set; }
public string Team { get; set; }
创建一个集合类PlayerList继承List&Player&:
using System.Collections.G
namespace ListDemo1
public class PlayerList : List&Player&
public PlayerList()
this.Add(new Player(1, &科比-布莱恩特&, &湖人队&));
this.Add(new Player(2, &保罗-加索尔&, &湖人队&));
this.Add(new Player(3, &拉玛尔-奥多姆&, &湖人队&));
this.Add(new Player(4, &德克-诺维茨基&, &小牛队&));
this.Add(new Player(5, &杰森-特里&, &小牛队&));
this.Add(new Player(6, &肖恩-马里昂&, &小牛队&));
this.Add(new Player(7, &凯文-加内特&, &凯尔特人队&));
Main 函数代码:
using System.Collections.G
namespace ListDemo1
class Program
static void Main(string[] args)
PlayerList players = new PlayerList();
//查找所有队员数据:
Action&Player& listAll = delegate(Player p)
Console.WriteLine(string.Format(&队员Id={0} | 队员名称={1} | 所属球队={2} &, p.Id, p.Name, p.Team));
Console.ForegroundColor = ConsoleColor.R
Console.WriteLine(string.Format(&数据库所有队员信息为:&));
players.ForEach(listAll);
//查找小牛队队员的谓词定义
Predicate&Player& findValue = delegate(Player p)
return p.Team.Equals(&小牛队&);
//第一个匹配元素
Player firstPlayer = players.Find(findValue);
Console.ForegroundColor = ConsoleColor.G
Console.WriteLine(&\r\nFind方法获得第一个小牛队员是:{0}&, firstPlayer.Name);
//获得所有的匹配元素
List&Player& findPlayers = players.FindAll(findValue);
Console.ForegroundColor = ConsoleColor.Y
Console.WriteLine(string.Format(&\r\nFindAll方法查找到的所有小牛球员为:&));
Action&Player& listFindAll = delegate(Player p)
Console.WriteLine(string.Format(&队员Id={0} | 队员名称为={1}&, p.Id, p.Name));
findPlayers.ForEach(listFindAll);
Console.ReadKey();
运行结果如下图:
至此本篇List集合此文来自: 马开东博客
转载请注明出处 网址:
的遍历与查找介绍完毕,下一篇主要介绍一下List集合的排序方式
相关阅读:
来源:(微信/QQ:,微信公众号:makaidong-com) &&&&&& 欢迎分享本文,转载请保留出处!
&&&&&& 【原文阅读】:
上一篇:没有了
【相关文章】
List Exists Contains
每日最新文章
每日最热文章
本周最热文章
本月最热文章
本年最热文章
Powered by
Copyright &
, All Rights Reserved<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&List特点:元素有放入顺序,元素可重复&
Map特点:元素按键&#20540;对存储,无放入顺序&
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)&
新建一个实体类
public class User {
public String getId() {
public void setId(String id) {
public String getName() {
public void setName(String name) {
this.name =
public String getAge() {
public void setAge(String age) {
this.age =
public String getAddress() {
public void setAddress(String address) {
this.address =
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((age == null) ? 0 : age.hashCode());
result = prime * result + ((address == null) ? 0 : address.hashCode());
public boolean equals(Object obj) {
if (this == obj) {
if (obj == null) {
if (getClass() != obj.getClass()) {
User other = (User)
if (id == null) {
if (other.id != null) {
} else if (!id.equals(other.id)) {
if (name == null) {
if (other.name != null) {
} else if (!name.equals(other.name)) {
if (age == null) {
if (other.age != null) {
} else if (!age.equals(other.age)) {
if (address == null) {
if (other.address != null) {
} else if (!address.equals(other.address)) {
private static List&User& removeListDuplicateObject(List&User& list) {
System.out.println(Arrays.toString(list.toArray()));
Set&User& set = new HashSet&User&();
set.addAll(list);
System.out.println(Arrays.toString(set.toArray()));
List&User& listnewList = new ArrayList&User&(set);
return listnewL
} 附上一个按某个字段排序功能
public int compareTo(DBBakPolicyDetail arg0) {
if(this.getDbName() == null && arg0.getDbName() == null){
}else if(this.getDbName() == null && arg0.getDbName() != null){
}else if(this.getDbName() != null && arg0.getDbName() == null){
return -1;
return this.getDbName().compareTo(arg0.getDbName());
&span style=&font-family: Helvetica, Tahoma, Arial, sans- font-size: 14 line-height: 25.453&&List特点:元素有放入顺序,元素可重复&#160;&/span&&br style=&font-family: Helvetica, Tahoma, Arial, sans- font-size: 14 line-height: 25.453& /&&span style=&font-family: Helvetica, Tahoma, Arial, sans- font-size: 14 line-height: 25.453&&Map特点:元素按键值对存储,无放入顺序&#160;&/span&&br style=&font-family: Helvetica, Tahoma, Arial, sans- font-size: 14 line-height: 25.453& /&&p&&span style=&font-family: Helvetica, Tahoma, Arial, sans- font-size: 14 line-height: 25.453&&Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)&#160;&/span&&/p&&p&&span style=&font-family: Helvetica, Tahoma, Arial, sans-&&&span style=&font-size: 14 line-height: 25.453&&新建一个实体类&/span&&/span&&/p&public class User {
public String getId() {
public void setId(String id) {
public String getName() {
public void setName(String name) {
this.name =
public String getAge() {
public void setAge(String age) {
this.age =
public String getAddress() {
public void setAddress(String address) {
this.address =
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((age == null) ? 0 : age.hashCode());
result = prime * result + ((address == null) ? 0 : address.hashCode());
public boolean equals(Object obj) {
if (this == obj) {
if (obj == null) {
if (getClass() != obj.getClass()) {
User other = (User)
if (id == null) {
if (other.id != null) {
} else if (!id.equals(other.id)) {
if (name == null) {
if (other.name != null) {
} else if (!name.equals(other.name)) {
if (age == null) {
if (other.age != null) {
} else if (!age.equals(other.age)) {
if (address == null) {
if (other.address != null) {
} else if (!address.equals(other.address)) {
之后调用即可
private static List&User& removeListDuplicateObject(List&User& list) {
System.out.println(Arrays.toString(list.toArray()));
Set&User& set = new HashSet&User&();
set.addAll(list);
System.out.println(Arrays.toString(set.toArray()));
List&User& listnewList = new ArrayList&User&(set);
return listnewL
} 附上一个按某个字段排序的功能:
public int compareTo(DBBakPolicyDetail arg0) {
if(this.getDbName() == null && arg0.getDbName() == null){
}else if(this.getDbName() == null && arg0.getDbName() != null){
}else if(this.getDbName() != null && arg0.getDbName() == null){
return -1;
return this.getDbName().compareTo(arg0.getDbName());
List特点:元素有放入顺序,元素可重复&
Map特点:元素按键&#20540;对存储,无放入顺序&
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)&
新建一个实体类
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:982次
排名:千里之外
(1)(1)(1)(1)}

我要回帖

更多关于 循环list实体类集合 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信