Rumah >Java >javaTutorial >Bagaimana untuk Menyertai Senarai Rentetan di Java dengan Cekap?

Bagaimana untuk Menyertai Senarai Rentetan di Java dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 19:42:11338semak imbas

How to Efficiently Join a List of Strings in Java?

Menukar Senarai kepada Rentetan Bergabung dalam Java

Dalam JavaScript, kaedah Array.join() menawarkan cara yang mudah untuk menggabungkan elemen tatasusunan menjadi rentetan tunggal. Adakah Java menawarkan fungsi yang serupa?

Jika anda ingin mencipta fungsi sedemikian dari awal, anda boleh menggunakan StringBuilder:

static public String join(List<String> list, String conjunction) {
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list) {
      if (first) first = false;
      else sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}

Walau bagaimanapun, sejak Java 8, pilihan yang lebih cekap dan elegan adalah tersedia:

String.join

Untuk menyertai Senarai khususnya, anda boleh menggunakan kaedah String.join():

List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"

Collectors.joining

Untuk koleksi dengan elemen jenis selain String, anda boleh menggunakan Collectors.joining collector with API Strim:

List<Person> list = Arrays.asList(
  new Person("John", "Smith"),
  new Person("Anna", "Martinez"),
  new Person("Paul", "Watson ")
);

String joinedFirstNames = list.stream()
  .map(Person::getFirstName)
  .collect(Collectors.joining(", ")); // "John, Anna, Paul"

StringJoiner

Anda juga boleh mempertimbangkan untuk menggunakan kelas StringJoiner, yang menawarkan pilihan penyesuaian tambahan:

StringJoiner joiner = new StringJoiner(", ");
list.stream()
  .forEach(joiner::add);

String joinedFirstNames = joiner.toString(); // "John, Anna, Paul"

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Senarai Rentetan di Java dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn