List
配列とは違うものとして扱うらしい。
変数定義の時はintでいいが、classの型を指定する時にはInteger。
<クラス型>とよばれることがあるIntegerであるが、
int型をメソッドとして使用できるラッパークラスと呼ばれることもあります。
// List
List<String> list1 = new ArrayList<>.(Arrays.asList("a","b","c","a");
//回す
for(String s:list1){
//処理内容
}
//sort
Collections.sort(list1.Collections.reverseOrder());
for(String s:list1){
//処理内容
}
独自のList
List<Staff> staffList = new ArrayList<>();
// ArrayListの<>は型を書いてもいい。書かなくても省略形として<Staff>がはいることになる??
//Staffはこんな感じ
public class Staff {
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Set
重複がないリストみたいなもん。勝手に重複排除してくれる。
HashSet<Integer> hash = new HashSet<INteger>(Arrays.asList(1,2,3,3));
//回す
for(int i :hash){
//処理内容
}
//ラムダ式 4があれば削除する
hash.removeIf(h ->h == 4);
//sort
Set<Integer>revHash = new hash.stream().sorted(Comparator.reverseOrder())
.collect(Collectors.toCollection(LinkedHashSet::new));
Map
key valueがあるデータ。連想配列みたいなもん。
Map<Integer,String> mapper = new HashMap<Integer,String>();
//Map<キーの型,値の型> オブジェクト名 = new HahsMap<>();
//設定
mapper.put(1,"a");
mapper.put(2,"b");
//get データの取得 引数にキーを設定することにより、バリューが取得できる
map.get(1);
//k,v一緒に回す
for(Map.Entry<Integer,String> entry : mapper.entrySet()){
System.out.print(entry.getKey); //キー取得
System.out.print(entry.getValue); //値取得
}
mapの使い方
データ変換
List -> Set
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(1);
//変換
Set set = new HashSet(list);
for(Integer s:set){
System.out.print(s);
}
//出力 1 2
Set -> List
Set set = new HashSet();
set.add(1);
set.add(2);
set.add(3);
//変換
List list = new ArrayList(set);
for(Integer value : list){
System.out.println(value);
}
//出力 1 2 3
ListのSort
//sort
Collections.sort(al);
//逆順
Collections.sort(al, Collections.reverseOrder());
collectionsかstreamか
Stream APIはJava8からの機能で、モダンな書き方で書くことができる。
速度も速く、可読性も高いためStreamが良さそう。
その他