2013-09-29 3 views
0

** Может модератор, пожалуйста, удалите или заблокировать этот вопрос, я знаю ответ, и теперь я не задавать вопросы каждый четкоПолучение частности ArrayList элемент

OK жаль плохо опубликовать все, что в моем коде

import java.util.*; 
import java.lang.*; 
import java.io.*; 

public class MinorAssignment_PartB { 

    public static void main(String[] args) throws Exception { 
     List<StudentMarks> marks = new ArrayList<StudentMarks>(); 
     String File = "studentinfo.txt"; 
     Scanner scan = new Scanner(new File(File)); 
     scan.useDelimiter(",");//makes the delimiter a comma 

     while(scan.hasNext()) { 
      marks.add(new StudentMarks(scan.next(), scan.next(), 
          scan.nextDouble(), scan.nextDouble(), 
          scan.nextDouble(), scan.nextDouble())); 

      System.out.printf("%-23s %-15s %-15s %-15s " + 
        "%-15s %-15s %-15s %-15s %n", "STUDENT NAME", 
         "STUDENT FAN", "PART A", "PART B", "PARTt C", 
              "PART D", "MARK", "GRADE"); 

      for (int i = 0; i < marks.size(); i++) { 
       System.out.println(marks.get(i)); 
      } 
     } 

и класс

import java.text.*; 

public class StudentMarks { 

    //contains a student class and an array of doubles. 
    private Student student = new Student(); 
    private double marks[] = new double[5]; 
    DecimalFormat fmt = new DecimalFormat("0.##"); 

    public StudentMarks(String name, String fan, 
      double partA, double partB, double partC, double partD) { 
     Student stud = new Student(name, fan); 
     this.student = stud; 
     this.marks[0] = partA; 
     this.marks[1] = partB; 
     this.marks[2] = partC; 
     this.marks[3] = partD; 
     this.marks[4] = ((partA*0.1) + (partB*0.4) + (partC*0.2) + (partD*0.3)); 
    } 

    @Override 
    public String toString() { 
     return "" + student + "\t" + marks[0] + "\t\t" + marks[1] + "\t\t" + marks[2] + "\t\t" + marks[3] + "\t\t" + fmt.format(marks[4])+"%"; 
    } 
} 

Поэтому мне нужно, чтобы получить конкретный элемент в строке Список_массивов

я есть 10 строк текста с каждой строки, содержащей 2 строки и 2 удваивается как этот Адам Adamson adam0001 85,4 79,8 82,4 86,1 9 больше линий и тот же формат имен и различно номера

я marks.get (0) который напечатать первую строку, но мне нужно всего лишь 3-й элемент, 85,4

Thanx все за попытку, но я понял это, извините за не задавать вопросы очень четко

+0

Не могли бы вы опубликовать определение этого ArrayList? Похоже, что это список, содержащий другой список. –

+0

Вы должны сообщить нам, что такое тип данных меток, и описать объекты, которые он содержит. –

+0

Вы собираетесь показать нам код? Иначе вы действительно тратите свое время. В настоящий момент мы не можем вам помочь. –

ответ

1

Прежде всего, вы должны добавить после получения доступа к marks в StudentMarks;

public double[] getMarks() { 
    return this.marks; 
} 

Затем, вы можете использовать следующий фрагмент кода, чтобы получить значение 85.4partA т.е..

StudentMarks info = marks.get(0); 
double[] marksValue = info.getMarks(); 
double partA = marksValue[0]; 

partA требуется переменная со значением 85.4, которые вы можете использовать в соответствии с вашими требованиями.

+0

Извините, информация Adam Adamson - это одна строка из 10 , если я поставлю 2, там будет распечатана строка 3, которая является информацией других лиц –

+0

@ user2828122 См. мой обновленный ответ. – TheKojuEffect

+0

Я положил это, и в первой строке указана красная подчеркнутая ошибка, в которой требуется строка, найденная StudentMarks, StudentMarks - это имя моего массива –

0

попытка преобразования

Person person =(person)marks.get(0); 
System.out.println(person.StudentMarks[0]); 

, а затем получить атрибут вам нужно

+0

Вы ошибаетесь. – Scadge

+0

Да, наверное, вопрос непонятен. Я думаю, вопрос скоро будет обновлен – upog

0

Определить метод получения в вашем StudentMarks классе:

public double[] getMarks() { 
    return marks; 
} 

И использовать System.out.println(marks.get(i).getMarks()[0]); если ваш marks[0] значение, которое вы необходимость.

Смежные вопросы