我想替换arraylist的元素

xytpbqjk  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(382)

这个问题在这里已经有答案了

“找不到符号”或“无法解析符号”错误是什么意思(15个答案)
三小时前关门了。
我叫伊斯特000。这是一个大学挑战。
我想更改成员的顺序,我想attackwithall()被链接。详细讲解公共课作业02A,
白色,黑色,黄色,黄色

↓ ap.rotate()

黑色,黄色,白色,黄色
请检查冒险家,战士,魔术师和派对。另一个代码是问题语句的副本。
错误消息:找不到符号=エラー:シンボルを見つけられません.
请忽略//ひだりにずらす.
クラス = 班级,シンボル = 符号,メソッド = 方法,場所 = 地点。
在此处输入图像描述
我很抱歉我的英语不好。

package exer3.person;
public class Person {
  private String name;

  public Person() {
    setName("no name");
  }

  public Person(String name) {
    this();
    setName(name);
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getName() {
    return name;
  }
}

/////////////

package exer3.person;
public class Adventurer extends Person{

  public Adventurer(){

  }

  public Adventurer(String name){
    super(name);
  }
  public String attack(){
    return "Yaa"; 
  }
}

///////

package exer3.person;

public class Fighter extends Adventurer{
  public Fighter(){

  }
  public Fighter(String name){
    super(name);
  }

  public String attack(){
    return "zap";
  }
}

/////////////////
package exer3.person;

public class Magician extends Adventurer{

  public Magician(){

  } 

  public Magician(String name){
    super(name);
  }

  public String attack(){
    return "kaboom";
  }
}

///////////

package exer3.person;
import java.util.ArrayList;
import java.util.StringJoiner;
public class Party <P extends Person> {
  ArrayList<P> member;
  public Party() {
    member = new ArrayList<>();
  }
  public void add(P one) {
    member.add(one);
  }
  public int size() {
    return member.size();
  }
  @Override

  public String toString() {
    StringJoiner j = new StringJoiner(", ");
    for (P one : member)
      j.add(one.getName());
    return j.toString();
  }
}

///////////
package exer3.person;
import java.util.StringJoiner;
public class AdvParty extends Party<Adventurer>{
  public AdvParty(){
    super();
  }
  public void rotate(){
    if(size()<=1){
      return;
    }
       String first = member(0);

      for(int i=0;i<size()-1;i++){
        member(i) = member(i+1);
      }
    member(size()-1) = first;

  }
  public String attackWithAll(){
    StringJoiner j = new StringJoiner(", ");
    for(P one : member){
      j.add(one.Attack());
     return j.toString();
    }
  }
}

//////////////////////First challenge

package exer3.person.tester;
import exer3.person.*;
public class Homework02a{
  public static void main(String[] args){
    AdvParty ap = new AdvParty();
    ap.add(new Fighter("white"));
    ap.add(new Fighter("black"));
    ap.add(new Magician("yellow"));
    System.out.println(ap);
    System.out.println(ap.attackWithAll());
    ap.rotate();
    System.out.println(ap);
    System.out.println(ap.attackWithAll());
  }
}

/////////Second challenge
package exer3.person.tester;
import exer3.person.*;
public class Homework02b{
  public static void main(String[] args){
    AdvParty ap = new AdvParty();
    System.out.println(ap);
    System.out.println(ap.attackWithAll());
    ap.rotate();
    System.out.println(ap);
    System.out.println(ap.attackWithAll());
  }
}

///Third challenge

package exer3.person.tester;
import exer3.person.*;
public class Homework02c{
  public static void main(String[] args){
    AdvParty ap = new AdvParty();
    ap.add(new Fighter("white"));
    System.out.println(ap);
    System.out.println(ap.attackWithAll());
    ap.rotate();
    System.out.println(ap);
    System.out.println(ap.attackWithAll());
  }
}
bxfogqkk

bxfogqkk1#

你在工作中犯了一些小错误 AdvParty 班级。
首先,有必要了解从数据库中检索元素的正确方法 ArrayList 根据它的索引。你应该找回 members.get(0) . 还有,就你而言, members 是冒险家列表,因此不能将其分配给 String 班级。你应该把它分配给 Adventurer 类型如下:

Adventurer first = member.get(0);

另外,要将项添加到 ArrayList ,你应该打电话 add 将索引作为第一个参数传递。所以,你的方法应该是这样的:

public void rotate() {
        if (size() <= 1) {
            return;
        }
        Adventurer first = member.get(0);

        for (int i = 0; i < size() - 1; i++) {
            member.add(i, member.get(i + 1));
        }
        member.add(size() - 1, first);
    }

你的 attackWithAll 方法也有错误。 member 是一个 Adventurer ,因此for循环应如下所示:

for (Adventurer one : member) {
        j.add(one.attack());
    }

相关问题