|
public class MinervaOwlSearchTop {
private static MinervaOwlSearchTop instance = new MinervaOwlSearchTop();
private final Map<Integer, AtomicInteger> searchedItem = new LinkedHashMap<Integer, AtomicInteger>();
public static MinervaOwlSearchTop getInstance() {
return instance;
}
public void searchItem(int itemid) {
synchronized (searchedItem) {
if (!searchedItem.containsKey(Integer.valueOf(itemid))) {
searchedItem.put(Integer.valueOf(itemid), new AtomicInteger(0));
}
searchedItem.get(Integer.valueOf(itemid)).incrementAndGet();
}
}
public List<Integer> getMostSearched() {
List<Integer> ret = new ArrayList<Integer>();
List<Pair<Integer, Integer>> items = new ArrayList<Pair<Integer, Integer>>();
synchronized (searchedItem) {
for (Entry<Integer, AtomicInteger> e : searchedItem.entrySet()) {
items.add(new Pair<Integer, Integer>(e.getKey(), e.getValue().intValue()));
}
}
Collections.sort(items, new Comparator<Pair<Integer, Integer>>() {
@Override
public int compare(Pair<Integer, Integer> o1, Pair<Integer, Integer> o2) {
if (o1.getRight() > o2.getRight()) {
return -1;
} else if (o1.getRight() < o2.getRight()) {
return 1;
} else {
return 0;
}
}
});
for (int i = 0; i < 10; ++i) {
try {
Integer z = items.get(i).getLeft();
ret.add(z);
} catch (ArrayIndexOutOfBoundsException aiobe) {
break;
} catch (IndexOutOfBoundsException iii) {
break;
}
//
}
return ret;
}
public void loadFromFile() {
File toLoad = new File("owlsearch.db");
if (toLoad.exists()) {
try {
FileInputStream fis = null;
byte[] buf = null;
ObjectInputStream ois = null;
ByteArrayInputStream bais = null;
fis = new FileInputStream(toLoad);
buf = new byte[fis.available()];
fis.read(buf);
bais = new ByteArrayInputStream(buf);
ois = new ObjectInputStream(bais);
Map<Integer, AtomicInteger> input = (Map<Integer, AtomicInteger>) ois.readObject();
searchedItem.putAll(input);
ois.close();
bais.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void saveToFile() {
File toSave = new File("owlsearch.db");
try {
if (!toSave.exists()) {
toSave.createNewFile();
}
ByteArrayOutputStream byteout = null;
ObjectOutput objout = null;
OutputStream out = null;
synchronized (searchedItem) {
byteout = new ByteArrayOutputStream();
objout = new ObjectOutputStream(byteout);
out = new FileOutputStream(toSave);
objout.writeObject(searchedItem);
byteout.writeTo(out);
if (byteout != null) {
byteout.close();
}
if (out != null) {
out.close();
}
if (objout != null) {
objout.close();
}
}
} catch (Exception ex) {
Logger.getLogger(MinervaOwlSearchTop.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
|
rehab21 님의 최근 댓글
답변 감사드립니다. 말씀처럼 넷빈에 추가를 했어요. 핸들링.로그인.핸들러 는 이미 존재하고 있어서 그 안에 AutoRegister라는 클래스를 생성했고, http://gamezone.one/index.php?mid=board_RYMI94&search_keyword=%EC%98%A4%ED%86%A0%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0&search_target=title_content&document_srl=286894 게시글에 있는 것 처럼 내용 붙혀넣기 하고 public static boolean getAccountExists(String login) { 부분을 public static boolean getAccountExists(String login) throws SQLException { 로 변경했는데요. 일단 해당 코드가 뭔가 잘못된건지.. 아래 그림처럼 hexsha1 부분이 에러가 나서 빌드가 실패하더라구요. 어떻게 해결할 수 있을까요? 2020 06.01 감사합니다. 2018 08.12 감사합니다. 2018 08.12 감사합니다. 2018 08.12 해결완료 2017 04.05