Bouts de codes Java qui reviennent assez souvent

Je mets ici quelques conversions de types et quelques bouts de codes utilisés très fréquemment, et que je suis à chaque fois obligé d’aller chercher sur StackOverflow. Donc autant les rassembler ici.

Convertir un Float en Double : [sourcecode language=“java”] Double monDouble = Double.valueOf(monFloat); [/sourcecode]

Convertir un Float en BigDecimal : [sourcecode language=“java”] BigDecimal value = new BigDecimal(Float.toString(123.4f)); [/sourcecode]

(Ci-dessous, à ne pas faire (cf ici)) : [sourcecode language=“java”] BigDecimal bd = BigDecimal.valueOf(f); [/sourcecode]

Et Double vers BigDecimal (choisir le MathContext que l’on veut) : [sourcecode language=“java”] BigDecimal b = new BigDecimal(d, MathContext.DECIMAL64); [/sourcecode]

List vers String[] : [sourcecode language=“java”] List list = ..; String[] array = list.toArray(new String[0]); [/sourcecode]

String[] vers List : [sourcecode language=“java”] List myList = Arrays.asList(myArray); [/sourcecode]

Convertir un Array en Set : [sourcecode language=“java”] Set mySet = new HashSet(Arrays.asList(someArray)); [/sourcecode]

Convertir un Set en List : [sourcecode language=“java”] List list = new ArrayList(set); [/sourcecode]

Comment trier une liste d’Integer en fournissant un Comparator (tri ascendant) : [sourcecode language=“java”] Collections.sort(input, new Comparator() {@Override public int compare(Integer left, Integer right) { return left > right ? 1 : -1;}}); [/sourcecode] Pour le tri descendant il suffit de changer le “>” par le “<”.

Comment inverser l’ordre d’une liste : [sourcecode language=“java”] Collections.reverse(list); [/sourcecode]

Supprimer un élément d’une liste via une boucle For : [sourcecode language=“java”] for (Iterator iter = list.listIterator(); iter.hasNext(); ) { String a = iter.next(); if (…) { iter.remove(); } } [/sourcecode]

Comment convertir une date en String : [sourcecode language=“java”] Date st= new Date(maDate); String maDateEnString = new SimpleDateFormat(“yyyy-MM-dd”).format(dt); [/sourcecode]

Comment obtenir juste les deux derniers chiffres de l’année en cours : [sourcecode language=“java”] return (new SimpleDateFormat(“yy”)).format(Calendar.getInstance().getTime()); [/sourcecode]

Créer une date très rapidement (sans se préoccuper des locales) : [sourcecode language=“java”] Date coolDate = new GregorianCalendar(year, month, day).getTime(); [/sourcecode]

Incrémenter un Calendar d’exactement un jour : [sourcecode language=“java”] cal.add(Calendar.DATE, 1); // number of days to add [/sourcecode]

Convertir une date en Calendar [sourcecode language=“java”] public static Calendar DateToCalendar(Date date){ Calendar cal = Calendar.getInstance(); cal.setTime(date); return cal; } [/sourcecode]

Sélectionner un élément aléatoire d’une liste : [sourcecode language=“java”] private T selectRandomFromList(List inputList){ Random randomGenerator = new Random(); int index = randomGenerator.nextInt(inputList.size()); return inputList.get(index); } [/sourcecode]

Comment obtenir un synchronize lock par input différent envoyé dans une méthode : [sourcecode language=“java”] private ConcurrentHashMap<String, Object> objectLockMap = new ConcurrentHashMap<String, Object>(); private Object getObjectLock(String input){ if(objectLockMap.get(input) == null){ objectLockMap.putIfAbsent(input, new Object()); } return objectLockMap.get(input); }

public List getUsersFromDate(String date) { List userList = new ArrayList(); synchronized (getObjectLock(date)){ userList = userDao.getUserListFromDate(date); } return userList; } [/sourcecode]

Générer toutes les permutations d’un set : [sourcecode language=“java”] public List<List> generatePerm(List original) { if (original.size() == 0) { List<List> result = new ArrayList<List>(); result.add(new ArrayList()); return result; } E firstElement = original.remove(0); List<List> returnValue = new ArrayList<List>(); List<List> permutations = generatePerm(original); for (List smallerPermutated : permutations) { for (int index=0; index <= smallerPermutated.size(); index++) { List temp = new ArrayList(smallerPermutated); temp.add(index, firstElement); returnValue.add(temp); } } return returnValue; } [/sourcecode]

Les nouveaux commentaires sont désactivés sur cette version statique du blog.