用更多列替换Arraylist

时间:2018-01-31 10:24:30

标签: java arraylist

因此,对于赋值,我需要替换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;作为参数。 已经提前感谢了

2 个答案:

答案 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方法。对于TeamList<T>.Set(int i, T elem)替换索引为Team的{​​{1}},因此它不应该是您想要做的事情,如i,事情您想要更改,可以直接在列表中已存在的实例上进行更改。要使用Team elem,您必须使用points的新值创建新的Set实例。