Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Nata22440
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 8
1

Java. Интерфейс Map

04.12.2017, 18:36. Просмотров 156. Ответов 8
Метки java, map (Все метки)

Добрый вечер! Есть готовый класс Device, необходимо выполнить сортировку по названию фирмы, с помощью интерфейса MAP. !!HELP! Помогите пожалуйста с этим МАР, как его реализовать в данном классе. P.S. ( в коде моей проги сортировка с помощью кампаратора, но она не нужна, ее убрать можно)
___________
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import java.awt.List;
import java.util.Arrays;
import java.util.Comparator;
import java.util.*;
 
public class Device {
    public int napryag;
    public int mochn;
    public String name;
    public String firm;
    public String model;
    
public Device(String a, String b, String c, int d, int e)
{
    firm = a;
    model = b;
    name = c;
    mochn = d;
    napryag = e;
}
public String getfirm() { return firm; }
public String getmodel() { return model; }
public String getname() { return name; }
public int getmochn() { return mochn; }
public int getnapryag() { return napryag; }
 
public Device()
{
    firm = "Samsung";
    model = "Mobile";
    name = "Ace";
    mochn = 100;
    napryag = 10000;
}
public void Print()
{
    System.out.printf("Фирма: %s Модель: %s  Название: %s  Мощность:%d  Напряжение:%d  \n", firm, model, name, mochn, napryag);
    
}
 
public static Comparator<Device> DeviceFirmComparator = new Comparator<Device>() {
 
public int compare(Device compareDevice1, Device compareDevice2) {
   
   return compareDevice1.getfirm().compareTo(compareDevice2.getfirm());
 
   
}
};
public static Comparator<Device> DeviceNameNapryagComparator = new Comparator<Device>() {//wrong
 
public int compare(Device compareDevice1, Device compareDevice2) {
   
   if (compareDevice1.getname() == (compareDevice2.getname()))
   { return compareDevice1.getnapryag() - compareDevice2.getnapryag();
   }   
   else return compareDevice1.getname().compareTo(compareDevice2.getname());
   
}
};
public String toString() {
    return "[ " + firm + ", " + model + ", " + name + ", "  +mochn + ", " +napryag + ", " +"]";
}
 
public static void main (String[] args) {
    Device d1= new Device();
    d1.Print();
     ArrayList<Device> arraylist = new ArrayList<Device>();
     arraylist.add(new Device("HP","Comp","e10",220,500));
       arraylist.add(new Device ("Samsung","Phone","Ace",320,330));
       arraylist.add(new Device("Armase","Planshet","QQ",10,1000));
       arraylist.add(new Device ("Samsung","AATelephom","dolk",440,60));
       arraylist.add(new Device ("Apple","iiPhone","Yu",360,11330));
       arraylist.add(new Device("Hyawei","Plan","Qww",310,100));
       arraylist.add(new Device ("Samsung","Telephom","ecsce",40,630));
       arraylist.add(new Device("Lenovo","Volshet","TenX",310,900));
       arraylist.add(new Device ("Sokolov","Battery","NN",240,510));
       arraylist.add(new Device("Windows","OP","Seven",410,210));
       arraylist.add(new Device ("Bigloin","phone","i20i",200,990));
       arraylist.add(new Device("Fly","betterine","one",150,250));
       
       
       Collections.sort(arraylist,DeviceFirmComparator);
       
 
       for(Device str: arraylist){
            System.out.println(str);
       }
      Collections.sort(arraylist,DeviceNameNapryagComparator);
      System.out.println(" NEW SOrt=");
      for(Device str: arraylist){
            System.out.println(str);
       }
      
      
      
      arraylist.sort(Comparator.comparing(Device::getfirm)
             
              .thenComparing(Comparator.comparing(Device::getnapryag)
              .reversed())
);
      System.out.println(" NEW SOrt= multiple");
      for(Device str: arraylist){
            System.out.println(str);
       }
    
    
}
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2017, 18:36
Ответы с готовыми решениями:

Map интерфейс в Java
1. Учет товаров на складе Основной информационный объект: товар (код товара...

Map коллекции JAVA
Доброго времени суток) суть задания - есть класс Goods(в нем есть название...

Работа с Map Java 8
Кто-нибудь может подсказать как объединить, чтобы не требовалось создавать лист...

Работа с Map в java
Ребят, подскажите, пожалуйста.. У меня есть класс NotebookTxtMappedDb, в...

Интерфейс в java
Доброго времени суток. Помогите разобраться с интерфейсом. Дан интерфейс...

8
Любопытный
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
04.12.2017, 18:47 2
Почему именно Map? Что будет ключем для этой Map?
Если ключем будет сам Device то можно создать TreeMap и передать в него компоратор, сравнивающий по чему угодно.
0
Nata22440
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 8
04.12.2017, 18:52  [ТС] 3
Map- потому что такое задание преподаватель поставил(

Добавлено через 32 секунды
Map- потому что такое задание дал преподаватель
0
xoraxax
1450 / 1347 / 401
Регистрация: 05.07.2013
Сообщений: 6,517
Завершенные тесты: 2
04.12.2017, 20:39 4
в тэги кусок этот заверни и отформатируй, нихрена не понятно
0
Nata22440
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 8
04.12.2017, 20:43  [ТС] 5
если бы я еще поняла что такое "тэги" и какой кусок куда завернуть...........
0
xoraxax
1450 / 1347 / 401
Регистрация: 05.07.2013
Сообщений: 6,517
Завершенные тесты: 2
04.12.2017, 21:31 6
кода кусок оформи, чтоб читать можно было. кнопочки видишь JAVA, PHP...
0
Nata22440
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 8
04.12.2017, 21:44  [ТС] 7
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import java.awt.List;
import java.util.Arrays;
import java.util.Comparator;
import java.util.*;
 
public class Device {
public int napryag;
public int mochn;
public String name;
public String firm;
public String model;
 
public Device(String a, String b, String c, int d, int e)
{
firm = a;
model = b;
name = c;
mochn = d;
napryag = e;
}
public String getfirm() { return firm; }
public String getmodel() { return model; }
public String getname() { return name; }
public int getmochn() { return mochn; }
public int getnapryag() { return napryag; }
 
public Device()
{
firm = "Samsung";
model = "Mobile";
name = "Ace";
mochn = 100;
napryag = 10000;
}
public void Print()
{
System.out.printf("Фирма: %s Модель: %s Название: %s Мощность:%d Напряжение:%d \n", firm, model, name, mochn, napryag);
 
}
 
public static Comparator<Device> DeviceFirmComparator = new Comparator<Device>() {
 
public int compare(Device compareDevice1, Device compareDevice2) {
 
return compareDevice1.getfirm().compareTo(compareDevice2.getfirm());
 
 
}
};
public static Comparator<Device> DeviceNameNapryagComparator = new Comparator<Device>() {//wrong
 
public int compare(Device compareDevice1, Device compareDevice2) {
 
if (compareDevice1.getname() == (compareDevice2.getname()))
{ return compareDevice1.getnapryag() - compareDevice2.getnapryag();
} 
else return compareDevice1.getname().compareTo(compareDevice2.getname());
 
}
};
public String toString() {
return "[ " + firm + ", " + model + ", " + name + ", " +mochn + ", " +napryag + ", " +"]";
}
 
public static void main (String[] args) {
Device d1= new Device();
d1.Print();
ArrayList<Device> arraylist = new ArrayList<Device>();
arraylist.add(new Device("HP","Comp","e10",220,500));
arraylist.add(new Device ("Samsung","Phone","Ace",320,330));
arraylist.add(new Device("Armase","Planshet","QQ",10,1000));
arraylist.add(new Device ("Samsung","AATelephom","dolk",440,60));
arraylist.add(new Device ("Apple","iiPhone","Yu",360,11330));
arraylist.add(new Device("Hyawei","Plan","Qww",310,100));
arraylist.add(new Device ("Samsung","Telephom","ecsce",40,630));
arraylist.add(new Device("Lenovo","Volshet","TenX",310,900));
arraylist.add(new Device ("Sokolov","Battery","NN",240,510));
arraylist.add(new Device("Windows","OP","Seven",410,210));
arraylist.add(new Device ("Bigloin","phone","i20i",200,990));
arraylist.add(new Device("Fly","betterine","one",150,250));
 
 
Collections.sort(arraylist,DeviceFirmComparator);
 
 
for(Device str: arraylist){
System.out.println(str);
}
Collections.sort(arraylist,DeviceNameNapryagComparator);
System.out.println(" NEW SOrt=");
for(Device str: arraylist){
System.out.println(str);
}
 
 
 
arraylist.sort(Comparator.comparing(Device::getfirm)
 
.thenComparing(Comparator.comparing(Device::getnapryag)
.reversed())
);
System.out.println(" NEW SOrt= multiple");
for(Device str: arraylist){
System.out.println(str);
}
 
 
}
}
0
ArtemFM
247 / 228 / 165
Регистрация: 10.09.2015
Сообщений: 850
05.12.2017, 06:48 8
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
 
public class DeviceBaseMain {
    public static void main(String[] args) {
        //массив не обязателен, но просто для примера
        Device[] devices = {
                new Device("HP", "Comp", "e10", 220, 500),
                new Device("Samsung", "Phone", "Ace", 320, 330),
                new Device("Armase", "Planshet", "QQ", 10, 1000),
                new Device("Samsung", "AATelephom", "dolk", 440, 60),
                new Device("Apple", "iiPhone", "Yu", 360, 11330),
                new Device("Hyawei", "Plan", "Qww", 310, 100),
                new Device("Samsung", "Telephom", "ecsce", 40, 630),
                new Device("Lenovo", "Volshet", "TenX", 310, 900),
                new Device("Sokolov", "Battery", "NN", 240, 510),
                new Device("Windows", "OP", "Seven", 410, 210),
                new Device("Bigloin", "phone", "i20i", 200, 990),
                new Device("Fly", "betterine", "one", 150, 250)
        };
 
        //добавляем массив в Map
        Map<String, Device> tree = new TreeMap<>();
        for (Device device : devices) {
            tree.put(device.getNameFirm(), device);
        }
 
        //печатаем девайсы
        for (Device device : tree.values()) {
            System.out.println(device);
        }
        System.out.println();
 
        //добавляем 2-мя способами
        Device dev = new Device("Apple", "Phone", "5S");
        tree.put(dev.getNameFirm(), dev);
 
        tree.put("Philips", new Device("Philips", "Phone", "X53"));
 
 
        //печатаем девайсы
        for (Device device : tree.values()) {
            System.out.println(device);
        }
    }
}
 
class Device {
    private String nameFirm;
    private String mainName;
    private String prefixName;
    private int power;
    private int volt;
 
    public String getNameFirm() {
        return nameFirm;
    }
 
    public String getMainName() {
        return mainName;
    }
 
    public String getPrefixName() {
        return prefixName;
    }
 
    public int getPower() {
        return power;
    }
 
    public int getVolt() {
        return volt;
    }
 
    public Device(String nameFirm, String mainName, String prefixName, int power, int volt) {
        this.nameFirm = nameFirm;
        this.mainName = mainName;
        this.prefixName = prefixName;
        this.power = power;
        this.volt = volt;
    }
 
    public Device(String nameFirm, String mainName, String prefixName) {
        this(nameFirm, mainName, prefixName, -1, -1);
    }
 
    @Override
    public String toString() {
        String power = this.power == -1 ? "--" : String.valueOf(this.power);
        String volt = this.volt == -1 ? "--" : String.valueOf(this.volt);
        return String.format("Full name: %s %s %s:%s %6s: %s;%s%6s: %s;",
                nameFirm, mainName, prefixName, System.lineSeparator(), "power", power,
                System.lineSeparator(), "volts", volt);
    }
}
0
Любопытный
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
05.12.2017, 11:42 9
Скажите своему преподавателю что Map не подходит для подобной задачи.
Если использовать сортированый TreeMap, и хранить значение в ключе, то при появлении Device с таким же Firm,
при вставке предыдущая запись будет перезаписана, согласно спецификации Map
Java
1
Associates the specified value with the specified key in this map (optional operation). If the map previously contained a mapping for the key, the old value is replaced by the specified value.
Если хранить Device в value то что задать ключем?
0
05.12.2017, 11:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2017, 11:42

Java Интерфейс Collection
Помогите, пожалуйста! Не могу разобраться с коллекциями. Нужно создать класс, с...

Java ООП(интерфейс)
Добрый вечер,помогите написать код пожалуйста. Есть класс товаров(чего...

Java графический интерфейс
Вопросы: 1.) Что такое Фрейм, панель, слой? 2.) Для чего используется, так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru