Notice: Undefined index: in /data/phpspider/phplib/misc.function.php on line 226
Java 我想更换这个元件_Java - Fatal编程技术网

Java 我想更换这个元件

Java 我想更换这个元件,java,Java,我的名字是earth000 我想改变人们的顺序,我想把每个人都联系起来 与公共课领导详细解释 白色,黑色,黄色,卡布姆 ↓ li.swap() 黑色,黄色,白色,黄色 请检查猎人、剑士、牧师和团队。另一个代码是问题语句的副本 public class Human { private String name; public String getName() { return name; } public void setName(String name

我的名字是earth000

我想改变人们的顺序,我想把每个人都联系起来

与公共课领导详细解释

白色,黑色,黄色,卡布姆

      ↓ li.swap()
黑色,黄色,白色,黄色

请检查猎人、剑士、牧师和团队。另一个代码是问题语句的副本



public class Human {
  private String name;

  public String getName() {
    return name;
  }

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

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

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

}

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

public class Hunter extends Human{
   
  public Hunter(){}

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

///////

public class Swordman extends Hunter{
  public Swordman(){
  
  }
  public Swordman(String name){
    super(name);
  }
    
  public String attack(){
    return "zap";
  }
}

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

public class Clergyman extends Hunter{
 
  public clergyman(){  } 

  public clergyman(String name){
    super(name);
  }
  
  public String attack(){
    return "kaboom";
  }
}

///////////

import java.util.StringJoiner;
import java.util.ArrayList;
public class Humans <T extends Human> {
  ArrayList<T> people;
  public Humans() {
    people = new ArrayList<>();
  }
  public void add(T one) {
    people.add(one);
  }
  public int size() {
    return people.size();
  }

  @Override

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

///////////

import java.util.StringJoiner;
public class Group extends Humans<Hunter>{
  public Group(){
    super();
  }
  public void swap(){
   
    String lead = people(0);
      
    for(int i=0;i<size()-1;i++){
      people(i) = people(i+1);
    }

    people(size()-1) = lead;

    if(size()<=1){return;}
       
  }
  public String everyoneAT(){
    StringJoiner j = new StringJoiner(", ");
    for(T one : people){
       j.add(one.Attack());
     return j.toString();
    }
  }
}


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


import java.human.*;
public class First{
  public static void main(String[] args){
    Group li = new Group();
    li.add(new Swordman("white"));
    li.add(new Swordman("black"));
    li.add(new Clergyman("yellow"));
    System.out.println(li);
    System.out.println(li.everyoneAT());
    li.swap();
    System.out.println(li);
    System.out.println(li.everyoneAT());
  }
}


/////////Second challenge

import java.Human.*;
public class Second{
  public static void main(String[] args){
    Group li = new Group();
    System.out.println(li);
    System.out.println(li.everyoneAT());
    li.swap();
    System.out.println(li);
    System.out.println(li.everyoneAT());
  }
}


///Third challenge

import java.human*;
public class Third{
  public static void main(String[] args){
    Group li = new Group();
    li.add(new Swordman("white"));
    System.out.println(li);
    System.out.println(li.everyoneAT());
    li.swap();
    System.out.println(li);
    System.out.println(li.everyoneAT());
  }
}



公共级人员{
私有字符串名称;
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共人权(){
设置名称(“无名称”);
}
公共人员(字符串名称){
这个();
集合名(名称);
}
}
/////////////
公共类Hunter扩展了人类{
公共搜索({}
公共猎人(字符串名称){
超级(姓名);
}
公共字符串攻击(){
返回“Yaa”;
}
}
///////
公开级剑士猎人{
公众剑士(){
}
公众剑士(字符串名称){
超级(姓名);
}
公共字符串攻击(){
返回“zap”;
}
}
/////////////////
公营牧师{
公共牧师({}
公共牧师(字符串名称){
超级(姓名);
}
公共字符串攻击(){
返回“kaboom”;
}
}
///////////
导入java.util.StringJoiner;
导入java.util.ArrayList;
公共阶层的人{
ArrayList人;
公众人物(){
people=newarraylist();
}
公共无效添加(T一){
增加(一);
}
公共整数大小(){
返回人。大小();
}
@凌驾
公共字符串toString(){
细木工j=新细木工(“,”);
对于(T一:人)
j、 添加(一个.getName());
返回j.toString();
}
}
///////////
导入java.util.StringJoiner;
公共类组扩展了人类{
公共组(){
超级();
}
公共无效掉期(){
串导=人(0);

对于(int i=0;i你在
小组中犯了一些小错误

首先,有必要了解通过索引从
ArrayList
检索元素的正确方法。您应该以
people.get(0)的身份检索
。此外,在您的情况下,
人员
是猎人列表,因此您不能将其分配给
字符串
类。您应该将其分配给
猎人
类型,如下所示:

Hunter-lead=people.get(0);
此外,要将项目添加到
ArrayList
中的特定索引,您应该调用
add
,将索引作为第一个参数传递。因此,您的方法应该如下所示:

public void swap(){
猎人线索=人。获取(0);
对于(int i=0;i如果已设置(size()Postscript:part add)。