ja 删除数组中重复元素

typedef TPointerLIst PPointerList;

如果你要得到的数组可以无序的话将原数组里的元素放到HashSet中就行了,如果你想得到的数组还要之前的顺序的话,就只能一个个比了,从头开始遍历,看每个元素跟它前面的元素有没有重复有则删掉。

list遍历删除 list遍历删除异常list遍历删除 list遍历删除异常


list遍历删除 list遍历删除异常


list遍历删除 list遍历删除异常


}for(int i=0;iInteger str[] = {1,2,3,3,3,4};

Integer[] newArray=set.toArray(new Integer[set.size()]) ;

for(Integer i:newArray){

System.out.println(i);

}//System.out.println(set);

Set s1=new HashSet();

System.out.print("原始数据:");

for(int i=0;i

{System.out.print(a[i]);

{s1.add(a[i]);//把值放入set结合中

}Iterator i1=s1.iterator();//set中遍利输出

System.out.println("过滤数据:");

while(i1.hasNext())

{System.out.print(i1.next());

用hashset 重复的自动去掉了

HashSet hashset=new HashSet();

hashset。add(1);

都加进去

Iterator iterator=hashset。itertaor();

做一个while循环 输出

就ok了

你把数组中的元素取出放入一个HashSet中,这样就可以过滤重复的值了。

用set简单

怎么将ResultSet中的数据全部遍历到list中

//---------函数的声明-------------------

List totalList = new ArrayList();

Statement stmt=conn.createStatement();

sql="select from sometable";

rs=stmt.executeQuery(sql);

while(rs.next()){

List oneElementList = new ArrayList();

oneElementList.add(rs.getInt(1));

oneElementList.add(rs.getString(2));

......看你有几个columns

totalList.add(oneElementList);

sorry,笔误 我明白cn_arthurs的意思,直接加rs都是可以的,但是安全性上会有问题

既然使用ja,别忘了使用他最重要的东西,对象

回答者:edisonrf - 助理 6-8 11:02

说的已经很清楚了,我在这是想修改一下

List oneElementList = new ArrayList(); 去掉

在while中创建你这个表对应的对象,然后在totalList.add(obj);应该更好一些

while(rs.next())

{list.add(rs.getString("数据库里的字段"));

}

ResultSet类的next方法,getString;ResultSet类的next方法,getString;ktExchange 交换Items数组中两项的位置。iilissjvjkf

int i=0;

while(rs.next()){

list.add(rs.get(i));

i++;

}

ResultSet类的next方法,getString;ResultSet类的next方法,getString;ktiilissjvjkf

ResultSet类的next方法,getString;

for i = 0 to rs.recordcount

next

c# List简单问题,两个List可以直接写等号吗?

可以呀,只是两者会相互影响。一个改变,另一个也改变。如果只for (var i = 0; i < res.length; i++) {想要个的值,直接把个List遍历出来,Add到第二个List中去吧

把一个list遍历记录一下两个数组对象的去重方法,方便下次偷懒。出来list。add(XX);

引用指向同一地址,两者修改其一,另一也随之改变。

clone 或者 直接赋值

js中怎么遍历list?

//---------利用typedef定义数据类型------

$.t('/wjdc/admin/wxWjTm/chooseTm.do', {

wjId: wjId

}, }HashSet是允许有重复值的,自己给你过滤function(res) {

// [{'id':'1','sxTm':'性别'},{'id':'2','sxTm':'省份'}]

var sel = $("select");

sel.append("");

}});

现有5个学生{"张三","李四","王五","那六","小七"}的数组,输入一个姓名,检查姓名是否存在,如果存在就删

TList::~TList

方法一,

List->Clear();

循环数组,进行比较,查找到了,从这个索引开始,将后面的值赋给前一个,达到删除的目的。

方法二,

这数组中的值放到中,比如list,都有判断对象是否存,及索引的方法,找到后,remove掉指定索引的元素即可。

遍历数组,判断数组元素删除

注意:数组是不能删除元素的,但可以将这个元素之外的其他元素放到一个新数组中,或将该位置元素替换成其他元素。

vb如何判断tabcontrol那个tabpage被删除了

{p=p->ne那么可以这么写xt;

List list1 遍历存储当前所有的tab名,首次调用时全部的,然后再新建个列表 list2(删除了的标签),删除的时候将list1的项添加到list2中,作完后list1中存储的是剩余的tab列表。

asp中 要删除checkbox选中的行,

多行索引,就是数据库中的ID或者主键一类的。

选中一个,那么id=1

选中两个,那么id=1 如果Items数组使用完列表对象Capacity,则Add方法分配更多的内存。Add增加Count值以反映新指针的增加。注意:即使Items数组包含零指针,Add方法总是在Items数组的末尾插入Items指针。and id=2

选中几个,那就有多少个索引。

当前的话,就直接获取。

多行的话,就循环遍历下咯/

参考个代码:

private string GetSelectedItemID(string controlID)

{String selectedID;

selectedID = "";

//遍历DataGrid获得checked的ID

foreach (GridViewRow row in gvFlowList.Rows)

selectedID += gv.DataKeys[row.RowIndex].Value + ",";

}if (selectedID.Length > 0)

selectedID = selectedID.Substring(0, selectedID.Length - 1);

return selectedID;

}调用方法时:

GetSelectedItemID(此处放置checkbox的ID);

数据库写法:

DELETE FROM T_Sys_Assgn_Rule WHERE rule_id IN ('+selectedID+')

js啊,定义一个num=0,循环遍历所有checkbox,如果有就num++,判断num就可以知道是否有选中行

foreach 遍历 datiew或者datalist行,判断checkbox选中行的ID,然后,del where ID=;

datalist 为例:

foreach (Datalist in this.datalist.Items)

{CheckBox chkItem = (CheckBox).FindControl("ChkBox");

if (chkItem.Checked)

{//被勾选

ids += chkItem.ToolTip + ",";

}}

if (ids != "")

{ids = ids.Substring(0, ids.Length - 1);

在button的单击里写

{DialogResult res = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

if (res == DialogResult.OK)

{//要执行的代码

}else

{//要执行的代码

}

1.先要判断你的check是什么对象? or

2.如果是input,直接request.form[checkboxname],如果是checkboxlist.为selects取struct Node next;

findcontrol 然后判断 如果选中 …… else ……

TList用法求教解决方案

}return ids;

您好,BCB的TList类说明

TList包含对象指针列表。

类关系 TObject

Tlist用于存储和维护对象列表。TList引入属隆和方法以执行以下作:

(1)在列表中增加或删除对象。

(2)在列表中重排对象。

(3)在列表中定位和获得对象。

(4)在列表中对对象进行排序。

属性列表

Capacity 标识TList对象维护的指针数组的大小。

Count 表明在列表中使用的项的数量。

Items 列出对象的引用。

List 标识组成Items的指针数组。

方法列表

~TList 删除与TList对象有关的内存。

Add 在列表的末尾插入有关的内存。

Clear 从列表中删除所有项。

Delete 删除Index参数标识的项。

Error 产生EListError异常。

Expand 增加列表的Capacity。

First 返回Items[0]。

IndexOf 返回Items数组中一指针的索引。

Insert 增加一对象至Items数组中。

Last 返回Items[Count-1]。

Move 在Items数组中改变某一项的位置。

Pack 从Items数组中删除所有的零项。

Remove 从Items数组中删除Items参数的个引用。

Sort 在列表中执行QuickSort。

TList 创建一个新的TList对象。

详细说明

属性

TList::Capacity

__property int Capacity = {read=FCapacity,write=SetCapacity,nodefault};

标识TList对象维护的指针数组的大小。

设置Capacity为列表将要包含的指旬数。当当设置Capacity属性时,如果没有足够的内存扩展列表为它的新的大小,将产生EOutOfMemory异常。

在没有重新分配内存情况下,读取Capacity可得到列表能包含的对象数。注意不要混淆Capacity和Count属性;Count属性为列表中使用的项的数量。Capacity值总是大于或等于Count值。当Capacity大于Count,通过设定Capacity至Count可以回收未使用的内存。当添加一对象至列表,而此列表已被填充到Capacity时,Capacity属性自动增加。在增加对象之前设置Capacity能减少内存重分配的数量,因此提高了执行效果。例如:

List->Capacity = Count;

for(int i=0;iadd(...);

在for循环之前分配Capacity保证在随后的每一Add作不重新分配列表。在调用Add时避免重新分配可以提高执行效果并且保证Add作不产生异常。

TList:;Count

__property int Count = {read=FCount,write=SetCount,nodefault};

表明在列表中使用的项的数量。

读取Count可以确定Items数组中项的数量。增加Count的大小将在Items数组的末尾增加必要的零指针的数量;减小Count的大小将从Items数组的末尾删除必要的零指针的数量。

注意:Count并不总等同于列表中引用的对象的数量。在Items数组中,某些项将包含零指针。如果要删除零指针并且设置Count为对象引用的项数,则可以调用Pack方法。

TList::Items

__property void Items[int Index] = {read=Get,write=Put};

列出对象的引用。

使用Items可以获得数组中指定对象的指针。Index参数标识对象的索引;个对象的索引值为0,第二个对象的索引值为1,以此类推。设置Items可以在指定位置改变引用。使用带有Count属性的Items可以遍历列表中的所有对象。

应该注意的是,并不是Items数组中所有的项都需包含对象的索引。有些项可能是零指针。如果要删除零掼针并且减小Items数组的大小至对象的数量,可以调用Pack方法。

TList::List

typedef void TPointerLIst[134217727];

__property PPointerList List = {read=FList};

使用List直接获得Items数组。

__fastcall virtual~TList(void);

删除与TList对象有关的内存。

在应用中不要直接调用~TList。用delete替代。

~TList释放存储项列表的内存。注意,~TList并不释放指向列表元素的内存。

TArrayList list1 = new ArrayList();List::Add

int __fastcall Ad(void Item);

在列表的末尾插入新项,可以调用Add方法。Add方法返回值为新项的索引值;列表中项的索引值为0

TList::Clear

DYNAMIC void __fastcall Clear(void);

从列表中删除所有项。

// 本文转自 C++Builder研究 - i=333&d=i653m1

TList::Delete

void __fastcall Delete(int Index);

删除Index参数标识的项。

如果要从列表指定位置删除项,可以调用Delete方法。索引从零开始,因此项的索引值为0,第二项的索引值为1,以此类推。调用Delete方法向前移动删除项之后的所有英并减小Count。

如果要删除一项的索引但并不从列表中删除该项并且改变Count,可设置Index的Items属性为零。注意Delete并不释放的项相关的内存。如果要释放存储删除项的内存,可设置Capacity属性。

TList::Error

virtual void __fastcall Error(const System::AnsiString Msg,int Data) {Error(__classid(TList),Msg,Data};

产生EListError异常。

当TList对象出现错误时,调用Error产生异常。Error组合Msg参数标识的错误消息和Data参数标识的数据植,然后产生EListError异常。调用Error而不是增加一行程序代码。

数据结构(C语言版)中的删除链表中的一个

++j;

temp=p;

p=p->next;

temp->next=NULL;

这三句存在问题,temp=p,让temp指向p所指向的,p=p->next,p指向后移

temp->next=NULL,让temp的后继为空,这里出了问题,链表从temp指向的断开,相当于删除p之后的所有。

应该先判断p是不是

if(p->next==NULL)

如果是,只好去找p的前趋pre,让pre->next=NULL,free(p)

如果不是,将p的后继数值域给p,然后将p的后继删除,等同与删除p

p->data=p->next->data;

p->next=p->next->next;

free(p);

void delnode(LinkList head, LinkList p); //删除

//-------函数部分-----------------------------

void delnode(LinkList head, LinkList p) //删除

{if(head==NULL ||p==NULL) return;

if(p==head)

{head = (head)->next;

delete p;

p=NULL;

return;

}while((head)->next !=p && (head)->next);

if(!(head)->next) return;

else

delete p;

p=NULL;

}}

//-------主函数部分----------------------

void main()

{...

LinkList p=L;

p = (p)list.add rs("id"),i->next;

delnode(&L, p);

...

}

//-------回答者:dingpwen忘记释放malloc申请的内存空间了。 ----

void delnode(LinkList head,int index);

//index为要删除在链表中的位置

//-------函数部分-----------------------------

void delnode(LinkList head,int index)

{LinkList p,q;

int count=0;

p=head;

q=head;

if(index==0)

free(q);

}while(p->next)

{if(count++==index)

{q->next=p->next;

free(p);

break;

}size++;

q=p;

p= p->next;

}return count;

}void main()

{int count;

//..前面创建链表的代码....

printf("请输入想删除在链表中的位置: ");

scanf("%d",count);

delnode(L,count);

//..其它代码....

}

//---------------------------包含头文件

#include

#include

#include //利用malloc动态分配内时要用到的头文件

typedef int DataType;

//int a;与DataType a;等价

//--------------定义结构体--------------

typedef struct Lnode

{int a;

struct Lnode next;

}Lnode,LinkList;

void create(LinkList L); //创建链表

void ListInitiate(LinkList head,int count);

void ListInitiate1(LinkList head,int count);

void Print(LinkList head);

int ListLength(LinkList head);

bool ListDelete(LinkList L, int i, DataType e); //删除第i个结点,将删除的结点返回在e中

//-------主函数部分----------------------

int main()

{LinkList L;

int cou;

create(&L);

printf("请输入你要创建结点的个数: ");

scanf("%d",&cou);

ListInitiate1(L,cou); //函数的调用

Print(L);

printf("n链表的长度为: %dn",ListLength(L));

int i;

printf("n请输入你要删除的结点的序号:");

scanf("%d", &i);

if(ListDelete(L, i, &e)){

printf("删除成功n");

}else {

}Print(L);

}//-------函数部分-----------------------------

void create(LinkList L)//创建链表

{if((L=(LinkList)malloc(sizeof(Lnode)))==NULL)exit(1);

(L)->next = NULL;

}void ListInitiate(LinkList head,int count) //比较这两个函数初始化的链表有什么不同.

{LinkList p;

int i;

for(i=0;i

{if((p=(LinkList)malloc(sizeof(Lnode)))==NULL)exit(1);

printf("请输入第%d个结点的值: ",i+1);

scanf("%d",&p->a);

p->next=head->next;

head->next=p;

}printf("链表初始化成功");

}void ListInitiate1(LinkList head,int count) //比较这两个函数初始化的链表有什么不同.

{LinkList p,q=head;

int i;

for(i=0;i

{if((p=(LinkList)malloc(sizeof(Lnode)))==NULL)exit(1);

printf("请输入第%d个结点的值: ",i+1);

scanf("%d",&p->a);

q->next =p;

q=p;

}p->next = NULL; //思考为什么这里一定要加句.而上一个不用加?

}void Print(LinkList head)//在屏幕上打印出链表的内容.

{LinkList p = head->next;

printf("你的链表为:n");

while(p)

{printf("%d → ",p->a);

p=p->next;

}printf("NULL");

}int ListLength(LinkList head)//求链表的长度

{int size=0;

while(head ->next)

{size++;

head = head->next;

}return size;

}bool ListDelete(LinkList L, int i, DataType e){

//在带头结点的单链线性表L中,删除第i个元素,并由e返回其值

LinkList p, q;

p = L; j = 0;

while(p->next&&j

p = p->next;

}if(!(p->next)||j>i-1){

printf("你所删除的结点不存在!n");

return false;

}q = p->next;

p->next = q->next;

e = q->a;

free(q); //释放结点

return true;

}//ListDelete