Java에서 목록을 만드는 다양한 방법
4029 단어 codenewbiearraysjavabeginners
그래서 우리는 그 이유를 알고 있습니다. 목록을 생성할 수 있는 여러 가지 방법을 살펴보겠습니다.
배열 목록<>()
우리 대부분이 사용할 첫 번째 목록 유형은
ArrayList
입니다. 요소가 입력된 순서대로 정렬된 요소를 유지합니다. String 요소를 사용하여 이 유형의 List를 선언하고 초기화하는 가장 간단한 방법은 다음과 같습니다.List<String> list = new ArrayList<>();
list.add("Here");
list.add("we");
list.add("add");
list.add("elements");
요소를 만들고 추가하는 이 방법은 다른 데이터 구조나 입력을 반복하면서 입력이 멈출 때까지 요소를 가져올 때 특히 유용합니다. 예를 들어
Scanner
및 IDE의 표준 입력 스트림Scanner scan = new Scanner(System.in);
// user input = 1 2 3 4 e
while(scan.hasNextInt()) { // returns true if element is an int
list.add(scan.nextInt());
}
// list = {1,2,3,4}
Arrays.asList()
이는 알 수 없는 수의 요소를 List로 가져오는 좋은 방법이지만, 이미 배열이 있는 경우 List로 변환해야 하는 경우는 어떻게 될까요? 이를 위한 앱 유틸리티 방법이 있습니다!
Arrays
클래스에서;String[] strings = new String[]{"Here's", "some", "strings",
"in a", "string array"};
List<String> asList = Arrays.asList(strings);
Voila, 우리
String[]
가 이제 목록입니다. 원하는 대로 요소를 추가하거나 제거할 수 있습니다. 그러나 Arrays.asList(array)
에 대한 인수로 입력한 배열이 목록의 기초로 사용되어 사용된다는 점에 유의하십시오(목록은 배열에 의해 뒷받침됨). 원래 배열에 대한 모든 변경 사항은 목록에 반영됩니다. 이것은 반대의 경우도 마찬가지입니다. 목록을 변경하면 배열에 반영됩니다.strings[1] = "altered the string array"; // change the element at
// index 1
System.out.println(asList); // [Here's, altered the string array,
// strings, in a, string array]
따라서 소스 배열에 주의하십시오. 그렇지 않으면 예상치 못한 결과가 나타날 수 있습니다.
목록.of()
목록을 빠르게 만드는 다음 방법은
List.of()
입니다. 이것은 List
인터페이스의 정적 메서드입니다. 정적은 다음과 같이 개체 인스턴스 없이 메서드를 호출할 수 있음을 의미합니다.Person personInstance = new Person();
int age = personInstance.getAge(); // instance method
double pi = Math.PI; // static field from the Math class
List.of()
의 단점(또는 이점)은 변경할 수 없는 목록을 반환한다는 것입니다. 즉, 요소를 추가하거나 제거할 수 없습니다. 염두에 두어야 할 사항이며 상황에 따라 필요에 따라 다를 수 있습니다.List<String> listOfList = List.of("Can't", "change", "this",
"list");
listOfList.add("add me please"); // throws
// UnsupportedOperationException
그러나 요소의 내부 상태는 여전히 변경될 수 있음을 알아야 합니다. 즉,
Person()
목록이 있는 경우 다음 명령문을 호출할 수 있습니다.listOf.get(1).setAge(32);
예외가 발생하지 않고.
Arrays.stream()
목록을 생성하기 위해 제안할 마지막 방법은 스트림을 사용하는 것입니다. 스트림은 2014년 버전 8에서 Java에 추가되었습니다. 스트림은 큰 주제이며 일단 익숙해지면 데이터 구조 작업을 훨씬 쉽게 해주기 때문에 살펴볼 가치가 있습니다. 본질적으로, 당신은 한쪽 끝에서 개체 그룹을 보내고 중간에서 이 그룹에 대해 다양한 작업을 수행한 다음(중간 작업), 끝에서 모두 다시 수집(터미널 작업)하고 데이터 구조로 다시 패키지합니다. 당신의 즐거운.
List<String> streamList =
Arrays.stream(strings).collect(Collectors.toList());
이것은 목록을 생성하기 위한 위의 방법에 비해 과한 것 같지만 스트림을 사용하는 일부 중간 작업은
filter()
입니다. 여기서 "s"
로 시작하는 문자열을 제거할 수 있습니다(예: skip(n)
는 처음 n개 요소를 건너뛰거나 sorted()
)는 자연스러운 순서에 따라 스트림의 요소를 정렬합니다. 내가 말했듯이 스트림을 사용하면 좋은 점과 유용한 이점이 많이 있습니다.그게 다야, 우리는 끝났어. 유용한 정보를 찾으셨기를 바랍니다. 제 사실을 확인하기 위해 이 글을 쓰고 문서를 읽는 것을 즐겼습니다. 추가하고 싶은 것이 있으면(제 첫 번째 Dev.to 게시물에, 그 이하도 아닙니다!) 아래에 의견을 말하십시오.
읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(Java에서 목록을 만드는 다양한 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/siaust/different-ways-to-make-a-list-in-java-2lb0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)