Maybe this test-code will be useful:
public class Test11 {
static String[] colorPallete = new String[] {"#1F1A17", "#62934D", "#F9B03F", "#7959BC", "#74B8DE", "#E65641", "#7CC8BB", "#D7CE5D", "#D6BE95", "#B694D1"};
public static void main(String[] args) {
Map<String, String> idToColorMap = new HashMap<String, String>();
List<News> newsList = new ArrayList<News>();
newsList.add(new News("1", "title1", "description1"));
newsList.add(new News("2", "title2", "description2"));
newsList.add(new News("1", "title3", "description3"));
newsList.add(new News("5", "title4", "description4"));
newsList.add(new News("2", "title5", "description5"));
newsList.add(new News("1", "title6", "description6"));
newsList.add(new News("1", "title7", "description7"));
newsList.add(new News("3", "title8", "description8"));
newsList.add(new News("4", "title9", "description9"));
newsList.add(new News("5", "title10", "description10"));
newsList.add(new News("1", "title11", "description11"));
newsList.add(new News("6", "title12", "description12"));
int colorIndex = 0;
for (int i = 0; i < newsList.size(); i++) {
if (newsList.size() > 1 && !idToColorMap.containsKey(newsList.get(i).getId())) {
News currentNews = newsList.get(i);
currentNews.setColor(colorPallete[colorIndex]);
idToColorMap.put(currentNews.getId(), colorPallete[colorIndex]);
for (int j = i + 1; j < newsList.size(); j++) {
if (newsList.get(j).getId().equals(currentNews.getId())) {
newsList.get(j).setColor(colorPallete[colorIndex]);
}
}
if (++colorIndex == colorPallete.length) {
colorIndex = 0;
}
} else {
newsList.get(0).setColor(colorPallete[0]);
idToColorMap.put(newsList.get(0).getId(), colorPallete[0]);
}
}
for (News news: newsList) {
System.out.println("News id=" + news.getId() + ", title=" + news.getTitle() + ", description=" + news.getDescription() + ", color=" + news.getColor());
}
for (Map.Entry<String, String> entry: idToColorMap.entrySet()) {
System.out.println("Id to color: id=" + entry.getKey() + ", color=" + entry.getValue());
}
}
}
class News {
String id;
String title;
String description;
String color;
News(String id, String title, String description) {
this.id = id;
this.title = title;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
Prints:
- News id=1, title=title1, description=description1, color=#1F1A17
- News id=2, title=title2, description=description2, color=#62934D
- News id=1, title=title3, description=description3, color=#1F1A17
- News id=5, title=title4, description=description4, color=#F9B03F
- News id=2, title=title5, description=description5, color=#62934D
- News id=1, title=title6, description=description6, color=#1F1A17
- News id=1, title=title7, description=description7, color=#1F1A17
- News id=3, title=title8, description=description8, color=#7959BC
- News id=4, title=title9, description=description9, color=#74B8DE
- News id=5, title=title10, description=description10, color=#F9B03F
- News id=1, title=title11, description=description11, color=#1F1A17
- News id=6, title=title12, description=description12, color=#E65641
- Id to color: id=3, color=#7959BC
- Id to color: id=2, color=#62934D
- Id to color: id=1, color=#1F1A17
- Id to color: id=6, color=#E65641
- Id to color: id=5, color=#F9B03F
- Id to color: id=4, color=#74B8DE