list過濾數據
❶ 如何過濾list中的重復數據
public class TesFilterList {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("123");
list.add("nihao");
list.add("nihao");
list.add("nihao");
list.add("nihao");
list.add("456");
list.add("789");
int len = list.size();
for(int i=0; i<len-1; i++){
String temp = list.get(i);
for(int j=i+1; j<len; j++){
if(temp.equals(list.get(j))){
list.remove(j);
j-- ;
len-- ;
}
}
}
for(int m=0; m<len; m++){
System.out.print(list.get(m) + " ");
}
}
}
❷ C#的問題,怎麼在List集合中篩選數據
方法一:Linq
ChannelList就是一個List類型的數據,IsOpen是其元素的屬性
channelCount=(fromchannelinDevicesManager.Instance.CurrentDevice.ChannelList
wherechannel.IsOpen
groupchannelbychannel.ChannelID).Count();
方法二:泛型委託Predicate<T>
publicdelegateboolPredicate<inT>(
Tobj
)
方法三、
///<summary>
///篩選運送方式
///</summary>
///<paramname="list">運送方式集合</param>
///<paramname="strType">運送方式</param>
///<returns></returns>
privateList<FeeRuleDto>selectList(List<FeeRuleDto>list,stringstrType)
{
returnlist.FindAll(delegate(FeeRuleDtoinfo){
if(info.DeliveryType.ToString()==strType)
{
returntrue;
}
else{
returnfalse;
}
});
}
方法四、
使用List<T>獲取資料庫表的時候,每次用戶操作都重新訪問資料庫,然後返回List<T>,會嚴重影響程序運行效率的方式,其實List<T>自帶有篩選的方法,把想要的數據篩選到另一個List<T>中,不用重新訪問資料庫,直接篩選後綁定控制項顯示即可。
示例如下:
publicNumberModelcurrentmark;
publicMainFrmmainFrm;
privateList<GoodsModel>goodslist;
privateList<GoodsKindModel>goodskindlist;
privatevoidlstgoodkind_SelectedIndexChanged(objectsender,EventArgse)
{
try
{
if(lstgoodkind.SelectedValue.ToString()!="XY.Model.GoodsKindModel")
{
stringid=lstgoodkind.SelectedValue.ToString();
stringkname=lstgoodkind.Text;
if(kname!="全部")
{
List<GoodsModel>glist=goodslist.FindAll(delegate(GoodsModelp){returnp.GoodsKind==kname;});
bindgoods(dgvgoods,glist);
}
else
{
bindgoods(dgvgoods,goodslist);
}
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
privatevoidbtnAdd_Click(objectsender,EventArgse)
{
try
{
stringgid=dgvgoods.Rows[dgvgoo
例如:跳過List前50條,然後取100條,可寫為:
iclist_temp、iclist都為List類型
iclist_temp = iclist.Skip(50).Take(100).ToList();
取前100條,可以寫為:
iclist_temp = iclist.Take(100).ToList();
ds.SelectedRows[0].Index].Cells["goodsid"].Value.ToString();
GoodsModelgoods=goodslist.Find(delegate(GoodsModelp){returnp.ID==gid;});
XY.BLL.ConsumeBll.Add(goods,currentmark,mainFrm.user);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
❸ 如何從ListT中篩選符合條件的數據的集合或個數
for循環 中加 if 判斷 將符合條件的 輸入到一個新的list中 在 ".size()"就可以知道個數了
❹ java 怎麼刪除List中的指定元素
主要有三種方法:
用一個List 記錄要刪除的數據,最後removeAll(List);
❺ list<string>如何去除重復數據
1. 循環list中的所有元素然後刪除重復
[java] view plain
public static List removeDuplicate(List list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
return list;
}
2. 通過HashSet踢除重復元素
[java] view plain
public static List removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
return list;
}
3. 刪除ArrayList中重復元素,保持順序
[java] view plain
// 刪除ArrayList中重復元素,保持順序
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.h
❻ List數據對比篩選,如何才能達到最佳效率
1、最簡單的就是用雙重循環進行比較,雖然簡單,但是如果兩個List的數據量都很大,那麼運行時間將成數量級增長。循環次數為1000*1000
2、把一個List通過循環放入Map中,把需要比較的欄位作為Map的Key,然後循環另外一個List,到Map裡面去匹配。
Java代碼
for(A a : aList){
map.put(a.amount,a);
}
for(B b : bList){
A a = map.get(b.amount);
if(a==null){
//a==null則說明沒有同b匹配的項
}else{
//a!=null則說明匹配上了
}
}
❼ Java兩個List的過濾問題
packagetest;
importjava.util.ArrayList;
importjava.util.List;
publicclassA1
{
publicstaticvoidmain(String[]args)
{
List<String>list1=newArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");//deletethisitem
list1.add("JSON--C--TEST");
List<String>list2=newArrayList<String>();
list2.add("B");
list2.add("C");
Stringtemp=list2.toString().replaceAll("[\[\]\s]","").replaceAll("\,","|");
System.out.println(temp);
Stringreg="^.*("+temp+").*$";
for(inti=0;i<list1.size();i++)
{
if(!list1.get(i).matches(reg))
{
list1.remove(i);
}
}
System.out.println(list1.toString());
}
}
❽ 如何將兩個List進行比較過濾出所要的數據
方法1:首先把2個list統一成結果的集合類型list/list. 直接用list.removeAll(Collection<?> c)/list.retainAll(Collection<?> c)得到要的結果方法2:遍歷2個listview,比較A和B然後存入第3個list
❾ C#中 list<object> 去除重復的數據 求最簡單的方法!!
//導入linq命名空間, 然後distinct一下就可以了. 關鍵代碼如下:
using System.Linq;
//比如,list實例為list
var obj = list.Distinct();
//或者麻煩點要根據list的欄位xxx過濾回就是
var obj_1=from p in list select p.xxx distinct();
擴展答資料
list()函數與array()類似,只是它可以在一次操作中從一個數組內提取多個值,同時為多個變數賦值。其形式如下:
voidlist(mixed…)從資料庫或文件中提取信息時,這種構造尤其有用。例如,假如你希望格式化並輸出從一個文本,文件中讀取信息。文件的每一行都包含用戶信息,如姓名、職業和喜愛的顏色,每一項用豎線分隔。典型的一行如下所示:
Nino Sanzi|profesional golfer|green
可以通過一個簡單的循環使用list()來讀取每一行,將各部分數據賦給變數,按照需要格式化並輸出數據。
❿ ArrayList中字元串的過濾
import java.util.*;
public class Doc {
public static void main(String[] args) {
();
}
public static void test() {
int[] num = new int[] { 1, 4, 5, 7, 8, 9 };
List<User> list = getListUser();
List<User> newlist = new ArrayList<User>();
// 雙層循環將數據里的元素和集合中的元素逐個取出,用於對比
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < list.size(); j++) {
// 當數組中的元素等於user的id時將對應的name改值,並存入新的集合中
if (num[i] == list.get(j).getId()) {
list.get(j).setName(list.get(j).getName() + "pipei");
newlist.add(list.get(j));
}
}
}
for (int i = 0; i < newlist.size(); i++) {
System.out.println(newlist.get(i).getId() + "\t"
+ newlist.get(i).getName());
}
}
public static List<User> getListUser() {
List<User> list = new ArrayList<User>();
User user1 = new User();
user1.setId(1);
user1.setName("abc");
list.add(user1);
User user2 = new User();
user2.setId(2);
user2.setName("123");
list.add(user2);
User user3 = new User();
user3.setId(3);
user3.setName("asd");
list.add(user3);
User user4 = new User();
user4.setId(4);
user4.setName("qwe");
list.add(user4);
User user5 = new User();
user5.setId(5);
user5.setName("fds");
list.add(user5);
User user6 = new User();
user6.setId(6);
user6.setName("';.");
list.add(user6);
User user7 = new User();
user7.setId(7);
user7.setName("```");
list.add(user7);
User user8 = new User();
user8.setId(8);
user8.setName("!@#");
list.add(user8);
User user9 = new User();
user9.setId(9);
user9.setName("~~~");
list.add(user9);
User user10 = new User();
user10.setId(10);
user10.setName("777");
list.add(user10);
return list;
}
}
class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}