Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маленький тест, :) 
:(
    Опции темы
Domestic Cat
Дата 17.9.2004, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата(LSD @ 17.9.2004, 08:58)
До чего?


// Поздравляю со "вступлением" в клуб smile.gif smile.gif



--------------------

PM   Вверх
AntonSaburov
Дата 17.9.2004, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Хорошо.
Такой вопрос - как наиболее компактно разместить в памяти 1 миллион boolean переменных ? Ну вот надо очень smile.gif

PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 17.9.2004, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Насколько я помню, булины хранятся как int. Можно написать нечто вроде сипипишного
bitset'а, только брать byte , написать к нему враппер и хранить в нем 8 булинов.


--------------------

PM   Вверх
AntonSaburov
Дата 17.9.2004, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Жаль, надо уходить, а на выходные я до Инета не доползу. Так что ответ даю сейчас. Жаль мало времени возились smile.gif

Код

import java.util.BitSet;
   
public class BitTest
{
   public static void main(String args[])
   {
       BitSet bitset = new BitSet();
       bitset.set(1000000);
       System.out.println("number of bytes required = " + bitset.size() / 8);
   }
}

PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 17.9.2004, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



sad.gif забыл про BitSet


--------------------

PM   Вверх
Alt
Дата 17.9.2004, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.8.2004

Репутация: нет
Всего: 2



Цитата
Это можно обойти, задав эту переменную не в командной строке а в shell (я именно так и предполагал сделать).


А не подскажешь, как переменную в shell задать?
Код

public class GetEnv{
public static void main(String[] args ){
 System.out.println("=>"+System.getProperty("xoxoxo"));
}
}


Вот так получается:
$ java -Dxoxoxo=blah GetEnv
=>blah
Но здесь меня смутило требование "не через командную строку"

А вот так не получается:

$ export xoxoxo=blah
$ echo $xoxoxo
blah
$ java GetEnv
=>null

PM MAIL   Вверх
Domestic Cat
Дата 17.9.2004, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



А это не те проперти smile.gif Java видит нe зависящие от системы/усера проперти :

Код

import java.util.Properties;
import java.util.Enumeration;
class Test
{
public static void main(String[] args)
{
  Properties sysprops = System .getProperties();
  for ( Enumeration e = sysprops.propertyNames(); e.hasMoreElements(); )
  {
    String key = (String) e.nextElement();
    String value = sysprops.getProperty(key );
    System.out.println(key + "=" + value);
  }
}

Системные можо передавать в коммандной строкe, либo как я вышe написal, либo
Код

java Test $myVar



--------------------

PM   Вверх
Domestic Cat
Дата 20.9.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Next

Есть класс MyButton. Задача: при добавлении к нему акшн листенерa, должен вызываться метод
actionPerformed. Если жe в качествe листенера передаетjаа объект класса SomeClass,
долж en вызываться метоd somethingHappened (но не actionPerformed):
Код

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class A extends JFrame implements ActionListener
{  
   A()
   {
       setSize(600, 200);
       MyButton button = new MyButton();
       getContentPane().add(button, BorderLayout.CENTER);
       button.addActionListener(this);
       button.addActionListener(new SomeClass());
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true);
   }
   
   public void actionPerformed(ActionEvent ae)
   {
       System.out.println("A.actionPerformed called");
   }
   
   public static void main(String [] args)
   {  
       new A();
   }
}

class MyButton extends JButton
{
   MyButton()
   {
       super("Button");
   }
}

class SomeClass implements ActionListener
{
   public void actionPerformed(ActionEvent ae) // Ne dolzhen vyzyvat'sja!
   {
       System.out.println("SomeClass.actionPerformed called");

   }
   
   public void somethingHappened(ActionEvent ae)
   {
       System.out.println("SomeClass.somethingHappened called");
   }
}


пример кликанья нa баттоне:
A.actionPerformed called
SomeClass.somethingHappened called

Менять можно толькo класс MyButton


--------------------

PM   Вверх
TrivialCore
Дата 21.9.2004, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 26.4.2004

Репутация: 2
Всего: 5



Код
class MyButton extends JButton implements ActionListener {

ArrayList listenersA;
ArrayList listenersSomeClass;


MyButton()
{
super("Button");
super.addActionListener(this);
listenersA = new ArrayList();
listenersSomeClass = new ArrayList();
}

public void addActionListener(ActionListener listener) {
if (listener instanceof A) {
listenersA.add(listener);
} else if (listener instanceof SomeClass) {
listenersSomeClass.add(listener);
}
}

public void actionPerformed(ActionEvent e) {
//сорри, лень писать, короче для всех эл-тов из списка listenersA зовем actionPerformed(e),
//а для эл-тов из списка listenersSomeClass зовем somethingHappened()
}

}


Это сообщение отредактировал(а) TrivialCore - 21.9.2004, 00:34
PM MAIL   Вверх
redrick
Дата 21.9.2004, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



притянуто за уши, но поскоку пока сам ничего не придумал... =)


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
TrivialCore
Дата 21.9.2004, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 26.4.2004

Репутация: 2
Всего: 5



Дык понятно, что никто нормальный так не напишет, на то оно и задачки =)
PM MAIL   Вверх
Domestic Cat
Дата 21.9.2004, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Please try again: interval [0.8855667, 0.95226675], random : 0.34494653

Да, оно -то правильно, но больно нехорошо smile.gif
Каk этo сделать прi условиi что баттон не может объявлять себя своим листенером ?


--------------------

PM   Вверх
AntonSaburov
Дата 21.9.2004, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Тогда еще один не сложный вопрос. Знаем, что есть такое instanceof.

Предположим, что есть функция с заголовком
Код

public boolean compareClass(Object obj1, Object obj2)
{
......
}

которая должна вернуть следующее - является obj2 тем же классом, что и obj1 или подклассом obj1.
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 21.9.2004, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



А обязательно пользовать instanceof? Если нет, то так:

Код

  void checkInheritance(Object a, Object c)
  {
       Class aClass = a.getClass();
       Class cClass = c.getClass();
       boolean cIsA = aClass.isInstance(c);
       boolean aIsC = cClass.isInstance(a);
       if (cIsA && aIsC) System.out.println("same class"); else
       if (cIsA && !aIsC) System.out.println("c is subclass of a"); else
       if (!cIsA && aIsC) System.out.println("a is subclass of c"); else
       System.out.println("different classes");
   }


Это сообщение отредактировал(а) Domestic Cat - 21.9.2004, 17:08


--------------------

PM   Вверх
AntonSaburov
Дата 21.9.2004, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Я запускать програмку для рейтинга не обещался smile.gif
Все верно. Я сформулировал не совсем красиво.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.