728x90
반응형

collections 6

null 또는 빈 컬렉션을 반환하는 것이 효율적인가?

질문 : null 또는 빈 컬렉션을 반환하는 것이 더 낫습니까? 그것은 일종의 일반적인 질문입니다 (하지만 저는 C #을 사용하고 있습니다), 가장 좋은 방법은 무엇입니까 (모범 사례), 반환 형식으로 컬렉션이있는 메서드에 대해 null 또는 빈 컬렉션을 반환합니까? 답변 컬렉션이 비어 있습니다. 항상. 이것은 짜증납니다. if(myInstance.CollectionProperty != null) { foreach(var item in myInstance.CollectionProperty) /* arrgh */ } 컬렉션 또는 열거 형을 반환 할 때 null 을 반환하지 않는 것이 가장 좋은 방법입니다. 항상 빈 열거 가능 / 컬렉션을 반환합니다. 앞서 말한 말도 안되는 소리를 방지하고 동료와 클래스 사..

Java에서 Map 값을 증가시키는 가장 효율적인 방법

질문 : Java에서 Map 값을 증가시키는 가장 효율적인 방법 이 질문이이 포럼에서 너무 기본적인 것으로 간주되지 않기를 바랍니다. 그러나 우리는 보게 될 것입니다. 여러 번 실행되는 더 나은 성능을 위해 일부 코드를 리팩터링하는 방법이 궁금합니다. Map (아마도 HashMap)을 사용하여 단어 빈도 목록을 만들고 있다고 가정 해 보겠습니다. 여기서 각 키는 계산되는 단어가있는 문자열이고 값은 단어의 토큰이 발견 될 때마다 증가하는 정수입니다. Perl에서 이러한 값을 증가시키는 것은 간단합니다. $map{$word}++; 그러나 Java에서는 훨씬 더 복잡합니다. 여기 내가 현재하고있는 방식 : int count = map.containsKey(word) ? map.get(word) : 0; map..

속성 별 Java 8 구별

질문 : 속성 별 Java 8 구별 Java 8에서 각 객체의 속성의 구별 성을 확인하여 Stream API를 사용하여 컬렉션을 필터링하려면 어떻게해야합니까? 예를 들어, Person 개체 목록이 있고 같은 이름을 가진 사람들을 제거하고 싶습니다. persons.stream().distinct(); Person 객체에 대해 기본 동등성 검사를 사용하므로 다음과 같은 것이 필요합니다. persons.stream().distinct(p -> p.getName()); 불행히도 distinct() 메서드에는 이러한 오버로드가 없습니다. Person 클래스 내에서 동등성 검사를 수정하지 않고 이것을 간결하게 할 수 있습니까? 답변 상태 저장 필터로 distinct 것을 고려하십시오. 다음은 이전에 본 내용에 대한..

자바 int []를 List<Integer>로 변환하는 방법

질문 : int []를 List로 변환하는 방법 자바? Java에서 int[] 를 List 로 어떻게 변환합니까? 물론 항목별로 루프를 수행하는 것보다 다른 답변에 관심이 있습니다. 그러나 다른 답변이 없다면이 기능이 Java의 일부가 아니라는 사실을 보여주기 위해 가장 좋은 답변을 선택하겠습니다. 답변 Arrays.asList 는 boxing을 처리하지 않고 원하는 것이 아닌 List int[] 에서 List 로 변환하는 지름길은 없습니다. 유틸리티 방법을 만들어야합니다. int[] ints = {1, 2, 3}; List intList = new ArrayList(ints.length); for (int i : ints) { intList.add(i); } 출처 : https://stackoverfl..

Java Map의 각 항목을 효율적으로 반복하는 방법

질문 : Java Map의 각 항목을 어떻게 효율적으로 반복합니까? Map 인터페이스를 구현하는 객체가 있고 그 안에 포함 된 모든 쌍을 반복하려는 경우 가장 효율적인지도 탐색 방법은 무엇입니까? 요소의 순서는 인터페이스에 대한 특정 맵 구현에 따라 달라 집니까? 답변 Map map = ... for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + "/" + entry.getValue()); } On Java 10+: for (var entry : map.entrySet()) { System.out.println(entry.getKey() + "/" + entry.getValue()); } 출처 : https://stack..

728x90
반응형