Вниз  Java-программирование (1-ые посты)
- 26.06.2014 / 17:41
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
SeTSeR, ну блин. Я имею в виду Stack<String>. У vlavok'a можно сделать и stack.push(1);

Изменено Ксакеп (26.06 / 17:41) (всего 1 раз)
- 26.06.2014 / 17:49
Freddy
  Пользователь

Freddy 
Сейчас: Online
Ксакеп, массив параметризованных объектов в Java создать не получится из-за ограничений, накладываемых на дженерики, подробнее здесь: http://docs.oracle.com/javase/...ns.html#createArrays
- 26.06.2014 / 17:50
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Ксакеп, а что мешает их добавить в стек и присвоить элементу массива? Или тебе надо сразу при объявлении массива добавить?
  1. private Stack getStack(String[] strs) {
  2.     Stack stack = new Stack();
  3.     for (String str: strs) { // работает ли для массивов?
  4.         stack.push(str);
  5.     }
  6.     return stack;
  7. }
  8.  
  9. Stack[] sstrs = new Stack[] {
  10.     getStack(new String[]{ "stack 1, string 1", "stack 1, string 2" }),
  11.     getStack(new String[]{ "stack 2, string 1", "stack 2, string 2" })
  12. }

or

  1. Stack[] sstrs = new Stack[] {
  2.     new Stack().push("stack 1, string 1").push("stack 1, string 2"),
  3.     new Stack().push("stack 2, string 1").push("stack 2, string 2)
  4. }

__________________
 знает толк
- 26.06.2014 / 17:52
Freddy
  Пользователь

Freddy 
Сейчас: Online
и ещё более подробно, почему это запрещено http://docs.oracle.com/javase/tutorial/extra/generics/fineprint.html
- 26.06.2014 / 17:52
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Ксакеп, сейчас, там вручную чуток надо будя сделать и будет то что тебе надо
__________________
 знает толк
- 26.06.2014 / 17:53
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Как раз по дженерикам статью в ленте увидел
http://howtodoinjava.com/2014/06/26/complete-java-generics-tutorial/
__________________
 let live
- 26.06.2014 / 17:58
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
__________________
 знает толк
- 26.06.2014 / 18:11
Zvers
  Пользователь

Zvers 
Сейчас: Offline
Ксакеп, public class AOS {

     public static StackObject[] st;

     public static void main(String[] args) {
         st = new StackObject[4];
         push("ABCD", 1);
         push("ABCDA", 1);
         push("abgf", 0);
         push("4555fgff", 2);
         push("4555fgf11111111f", 2);
         push("4MMMMMM", 2);
         System.out.println(pop(1));
         push("ABCDB", 1);
         System.out.println(pop(1));
         System.out.println(pop(1));
         System.out.println(pop(1));
         System.out.println(pop(0));
         System.out.println(pop(2));
         System.out.println(pop(2));
         System.out.println(pop(2));
     }

     public static void push(String s, int pos) {
         StackObject obj = new StackObject(s);
         if (st[pos] != null) {
           obj.next = st[pos];
         }
         st[pos] = obj;
     }

     public static String pop(int pos) {
         StackObject obj = st[pos];
         if (obj == null) {
           return "null";
         }
         st[pos] = obj.next;
         return obj.str;
     }

     public static class StackObject {

         public String str;
         public StackObject next;

         public StackObject(String w) {
           this.str = w;
         }

     }
}
- 26.06.2014 / 18:12
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Ксакеп,
  1. public final class StackArray<T> {
  2.  
  3.     public static void main(String[] args) {
  4.         StackArray<String> sar = new StackArray<>(10);
  5.         sar.getStackAt(0).push("1");
  6.         sar.getStackAt(1).push("2");
  7.         sar.getStackAt(0).push("3");
  8.         System.out.println(sar.getStackAt(0).pop());
  9.     }
  10.  
  11.     private final Stack<T>[] array;
  12.  
  13.     public StackArray(int size) {
  14.         array = (Stack<T>[]) Array.newInstance(Stack.class, size);
  15.         for (int i = 0; i < size; i++) {
  16.             array[i] = new Stack<>();
  17.         }
  18.     }
  19.  
  20.     public Stack<T> getStackAt(int index) {
  21.         return array[index];
  22.     }
  23. }

__________________
 let live
- 26.06.2014 / 18:28
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
aNNiMON, мне только объявление можно. Ну, а без Array.newins... ?:
  1. Stack<T>[] array = (Stack<T>[]) Array.newInstance(Stack.class, size);

vlavok, хочется параметризации:
  1. Stack[] sstrs = new Stack[]

Freddy, ясно дело, что прям так плохо писать, но на собеседовании массив "позарез" нужен:
  1. List<Integer>[] arrayOfLists = new List<Integer>[2];  // compile-time error

Zvers, ну это что-то около самописного стека, мне нужен из java.util.collections.

Изменено Ксакеп (26.06 / 18:28) (всего 1 раз)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)