因此,对于赋值,我需要替换ArrayList中的Element。作为一个例子,我有一个团队类
import { Component } from '@angular/core';
import { IonicPage, ModalController, NavController, NavParams, ActionSheetController } from 'ionic-angular';
import { AlertController } from 'ionic-angular';
import { AngularFireDatabase,FirebaseObjectObservable } from 'angularfire2/database';
import { Subscription } from 'rxjs/Subscription';
import { ConAgentsPage } from '../conagents/conagents';
import { HandluPage } from '../handlu/handlu';
import { PropertyItem } from '../../models/property-item/PropItem.interface';
@IonicPage()
@Component({
selector: 'page-handlu-prop',
templateUrl: 'handlu-prop.html',
})
export class HandluPropPage {
propertyItemSubscription: Subscription;
propertyItem = {} as PropertyItem;
propertyItemRef$: FirebaseObjectObservable<PropertyItem>;
constructor(private database: AngularFireDatabase,
private modCtrl: ModalController,
public navCtrl: NavController,
public navParams: NavParams,
public alertCtrl: AlertController) {
const propertyItemId = this.navParams.get('$key');
console.log(propertyItemId);
this.propertyItemRef$ = this.database.object(`Property/${propertyItemId}`).valueChanges();
this.propertyItemSubscription =
this.propertyItemRef$.subscribe( propertyItem => this.propertyItem = propertyItem );
}
ionViewWillLeave() {
this.propertyItemSubscription.unsubscribe();
}
我需要在列表中找到团队的ID,并用新积分替换积分。我知道我可以使用list.get(i).id获取ID的索引但我不知道如何替换那里的Points。我知道有一个list.set()命令,但我没有找到如何替换ArrayList中的团队点,因为set命令不接受&#34; i&#34;作为参数。 已经提前感谢了
答案 0 :(得分:0)
我想您有一个Team对象的ArrayList,并且您想要更改具有特定ID的团队的积分?
为此,您可以:
for(int i = 0; i < yourlist.size(); i++)
if (yourlist.get(i).id == yourID)
yourlist.get(i).points += 1;
break;
答案 1 :(得分:0)
列表的每个元素都是Team
。正如您所说,首先您需要获取具有您想要更改点的Team
的ID的元素Team
。要做到这一点,你需要以某种方式迭代列表并找到这样的元素。请注意,因为List<T>.Get(int i)
会在列表的索引i
处提供元素,而不是ID为Team
的{{1}}。然后,要设置i
的点,要么直接指定值,要么更好地定义和使用setter方法。对于Team
,List<T>.Set(int i, T elem)
替换索引为Team
的{{1}},因此它不应该是您想要做的事情,如i
,事情您想要更改,可以直接在列表中已存在的实例上进行更改。要使用Team elem
,您必须使用points
的新值创建新的Set
实例。