20210609のJavaに関する記事は5件です。

Listの要素を編集、並び替える方法(JAVA)

Listの要素を編集、並び替える方法(JAVA) 今回はListの要素を編集、並び替える方法を紹介させて頂きます。 1.List内の特定の要素の値を変更したい場合 2.Listの要素を並び替える方法(昇順) 3.Listの要素を並び替える方法(降順) 4.まとめ List内の特定の要素の値を変更したい場合 List内の特定の要素の値を変更したい場合はreplaceメソッドを利用します。 List.set(変更したい要素のインデックス,変更後の値) 使用例 public class Main { public static void main(String[] args) { List<String> list = new ArrayList<>(Arrays.asList("Apple","Orange","Grape")); System.out.println("listの中身"); System.out.println(list); list.set(1,"Melon"); System.out.println("listの中身(setメソッド使用後)"); System.out.println(list); } } 実行結果 listの中身 [Apple, Orange, Grape] listの中身(setメソッド使用後) [Apple, Melon, Grape] また、変更したい要素のインデックスではなく値で指定したい場合が多いと思うので、値が一致する要素のインデックスを調べることができるindexOfメソッドをあわせて利用する機会が多いと思います。 indexOfメソッドの利用方法は下記の通りになります。 List.indexOf(検索したい要素); 使用例 public class Main { public static void main(String[] args) { List<String> list = new ArrayList<>(Arrays.asList("Apple","Orange","Grape")); System.out.println("listの中身"); System.out.println(list); list.set(list.indexOf("Orange"),"Melon"); System.out.println("listの中身(replaceメソッド使用後)"); System.out.println(list); } } 実行結果 listの中身 [Apple, Orange, Grape] listの中身(replaceメソッド使用後) [Apple, Melon, Grape] "Orange"のインデックスがindexOfメソッドで返ってきてMelonに変更されている事が分かります。 Listの要素を並び替える方法(昇順) Listの並び替えを行いたい場合はCollectionsクラスのsortメソッドを利用します。 Collections.sort(List); 使用例 public class Main { public static void main(String[] args) { List<String> strList = new ArrayList<>(Arrays.asList("Apple","Orange","Grape")); System.out.println("strListの中身"); System.out.println(strList); Collections.sort(strList); System.out.println("strListの中身(sortメソッド使用後)"); System.out.println(strList); System.out.println("------------------------------------------------------------"); List<Integer> intList = new ArrayList<>(Arrays.asList(5,1,7)); System.out.println("intListの中身"); System.out.println(intList); Collections.sort(intList); System.out.println("intListの中身(sortメソッド使用後)"); System.out.println(intList); } } 実行結果 strListの中身 [Apple, Orange, Grape] strListの中身(sortメソッド使用後) [Apple, Grape, Orange] ------------------------------------------------------------ intListの中身 [5, 1, 7] intListの中身(sortメソッド使用後) [1, 5, 7] listの中身が昇順で並び替えられたことが分かります。 Listの要素を並び替える方法(降順) Listを降順で並び替えたい場合はsortメソッドの第二引数にCollections.reverseOrderメソッドを指定します。 Collections.sort(List,Collections.reverseOrder()); 使用例 public class Main { public static void main(String[] args) { List<String> strList = new ArrayList<>(Arrays.asList("Apple","Orange","Grape")); System.out.println("strListの中身"); System.out.println(strList); Collections.sort(strList,Collections.reverseOrder()); System.out.println("strListの中身(sortメソッド使用後)"); System.out.println(strList); System.out.println("------------------------------------------------------------"); List<Integer> intList = new ArrayList<>(Arrays.asList(5,1,7)); System.out.println("intListの中身"); System.out.println(intList); Collections.sort(intList,Collections.reverseOrder()); System.out.println("intListの中身(sortメソッド使用後)"); System.out.println(intList); } } 実行結果 strListの中身 [Apple, Orange, Grape] strListの中身(sortメソッド使用後) [Orange, Grape, Apple] ------------------------------------------------------------ intListの中身 [5, 1, 7] intListの中身(sortメソッド使用後) [7, 5, 1] まとめ Listの要素を書き換えたい場合はreplaceメソッドを利用する。 List内にある値のインデックスを調べたいときはindexOfメソッドを利用する。 Listの要素を昇順で並び替えたい場合はsortメソッドを利用する。 Listの要素を降順で並び替えたい場合はsortメソッドを利用し、第二引数にCollections.reverseOrder()を利用する。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

 Java Excelで配列を作成

配列(array)とは、複数の要素(値)の集合を格納・管理するのに用いられるデータ構造です。今回もSpire.XLS for Javaという無料のライブラリを活用して、Excelで配列の作成法を紹介します。 下準備 1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。 2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire. XLS.jarを参照に追加してください。 import com.spire.xls.ExcelVersion; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class InsertArray { public static void main(String[] args) { //Workbook objectを作成します。 Workbook wb = new Workbook(); //初めのシートを取得します。 Worksheet sheet = wb.getWorksheets().get(0); //一列のデータを定義します。 String[] oneDimensionalArray = new String[]{"リンゴ", "バナナ", "スイカ", "カキ"}; // 指定するセルに配列を書き込み、trueは縦書きに、falseは横書きにします。 sheet.insertArray(oneDimensionalArray, 1, 1, true); //二次元配列を定義します。 String[][] twoDimensionalArray = new String[][]{ {"名前", "年龄", "性别", "国籍"}, {"王洋", "25", "男", "中国"}, {"田中真理子", "24", "女", "日本"}, {"ニック", "26", "男", "アメリカ"} }; //指定するセルから、二次元配列をシートに書き込みます。 sheet.insertArray(twoDimensionalArray, 1, 3); //保存します。 wb.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016); } } 実行結果  
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Java  Excel をSVGに変換

SVGはXMLベースの、2次元ベクターイメージ用の画像形式の1つです。今日はSpire.XLS for Javaという無料のライブラリを活用して、Excel をSVGに変換する方法を紹介します。 下準備 1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。 2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire. XLS.jarを参照に追加してください。 元のファイル   import com.spire.xls.*; import java.io.FileOutputStream; import java.util.List; import java.util.Map; public class excelToSVG { public static void main(String[] args) throws Exception { //ファイルをロードします。 Workbook workbook = new Workbook(); workbook.loadFromFile("Sample.xlsx"); int count = 1; //ページの情報を取得します。 List<Map<Integer, PageColRow>> pageInfoList = workbook.getSplitPageInfo(); for (int i = 0; i < workbook.getWorksheets().getCount(); i++) { FileOutputStream stream; Worksheet sheet = workbook.getWorksheets().get(i); Map<Integer, PageColRow> integerPageColRowMap = pageInfoList.get(i); for (Map.Entry<Integer, PageColRow> entry : integerPageColRowMap.entrySet()) { PageColRow colRow = entry.getValue(); stream=new FileOutputStream("(count++) + "-ExcelToSVG.svg "); //SVGで保存します。 sheet.toSVGStream(stream, colRow.StartRow, colRow.StartCol, colRow.EndRow, colRow.EndCol); stream.flush(); stream.close(); } } } } 実行結果  
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

mavenでspotbugsが急に動かなくなった話

昨日まであんなに元気にビルドできていたのに急に何故こんなことに。ぴえん。 っていうのはよくある話です。 私もいつものようにバグチェックで mvn spotbugs:sptbugs ってコマンド叩いたらなんか、エラー出た。 なんかエラー PS C:\Users\hoge\source\repos\hoge-prj> mvn spotbugs:spotbugs Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.852 s [INFO] Finished at: 2021-06-01T09:52:19+09:00 [INFO] ------------------------------------------------------------------------ [ERROR] No plugin found for prefix 'spotbugs' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\hoge\.m2\repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1] org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException: No plugin found for prefix 'spotbugs' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\hoge\.m2\repository), central (https://repo.maven.apache.org/maven2)] at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve (DefaultPluginPrefixResolver.java:95) (中略) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException 最初は、pom.xmlの記載不備とか社内ネットワークproxyが不通になったのかとか色々調べたけど ハタと気づいて、コマンド発行するパスを間違えてるのではってことで、 PS C:\Users\hoge\source\repos\hoge-prj> cd .\JavaProject\ PS C:\Users\hoge\source\repos\hoge-prj\JavaProject> mvn spotbugs:spotbugs [INFO] Fork Value is true [INFO] Done SpotBugs Analysis.... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 07:26 min [INFO] Finished at: 2021-06-01T10:05:23+09:00 [INFO] ------------------------------------------------------------------------ ってことで、無事に動きました。 どうやら、pom.xmlが存在するパスでやらないとダメっぽかったです。 mvn compileは、パスが違っていても通っていたので気づけなかった。 みなさん、カレントパスには気を付けましょう。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

minecraft java edition マルチーサーバーで1.17にしたら動かないときの対処

minecraft java edition ver1.17実行したらエラーでた GCE(Google Cloud Engine)でマイクラのマルチサーバーをたてているのですがそれに1.17を入れて実行しようとすると以下のエラーが出ました。 Error: LinkageError occurred while loading main class net.minecraft.server.Main java.lang.UnsupportedClassVersionError: net/minecraft/server/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 55.0 どうやらjavaのruntimeでバージョンエラー?? 実行環境 GCE Ubuntu 20.04.2 LTS minecraft Java Edition Ver.1.17 openJDK 11.0.11 対処法 詳しいことはわかりませんがとりあえずjavaの実行環境が合っていないっぽいのでopenJDKを最新?の16に入れなおすと動きました。 入れ方はQiita記事の「OpenJDK(Java)を最新のUbuntuにインストールOpenJDK(Java)を最新のUbuntuにインストール」 がいいと思います。 おまけ minecraftのwiki(日本語、英語ともに)openJDK-8をインストールするようになっていたので試しに入れて動かしてみたら同様のエラーがでました。(エラーに出てるバージョンが55から52になってましたw) おそらくopenJDKの11以前のものは動かないと思われるのでお気を付けください。そのうちminecraft wikiも変わると思うけど
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む