ArrayListと反復器およびストリーム

14102 ワード

ArrayList vs Array


Array(配列)は一定の長さを有し、private typeおよびobject要素を含むことができる.
ArrayListはListインタフェースで実装されるクラスであり,object要素のみを含み,動的長さを持つ.
ArrayListには様々な用途があり、以下の例で説明する.
  • 最初の
  • List<String> strlist = new ArrayList<>();
    	
        	strlist.add("dsg");
    	strlist.add("kmb");
    	strlist.add("ibk");
    	strlist.add("kmj");
    		
    	for(int i=0; i<strlist.size(); i++) {
    		System.out.println("strlist : " + strlist.get(i));	
    	}
    Stringタイプのジェネリックを持つArrayListオブジェクトを作成します.addメソッドを使用して、インデックスごとに値を追加します.結果は以下の通りです.
  • 2 2 2番目の
  • List<String> strlist2 = Arrays.asList("dsg", "kmb", "ibk", "kmj");
    		
    	for(String str : strlist2) {
    			
    		System.out.println("str : " + str);	
    	}
    ArrayクラスのメソッドasListを使用して直接値を入力します.
    foreach文(強化されたfor文)、for(変数タイプ変数:配列名)です.
    for(String str : strlist2) == String [ ] str = strlist2.get(i)
    結果は以下の通りです.
  • 第3の
  • List<String> strlist3 = Arrays.asList("dsg", "kmb", "ibk", "kmj");
    		
    	strlist3.stream()
    		.forEach( i -> {
      		    System.out.println(i);
    		});
            
          
    List<UserDto> strlist4 = Arrays.asList(
    				
    	new UserDto("dsg", 31, "male"),
    	new UserDto("kmb", 30, "male"),
    	new UserDto("ibk", 29, "female"),
    	new UserDto("kmj", 28, "male")
    );
    	
    	strlist4.stream()
    		.map(UserDto::getAge)
    		.forEach( i -> {
    			System.out.println(i);
    		});
            
    	System.out.println (	
    		strlist4.stream()
    			.map(UserDto::getAge)
    			.collect(Collectors.toList())
    		
    		);
    3)ストリーム()中間処理手法を用い,複数の手法を用いてデータを変換できる.
    以前は反復器を使用していましたが、以下の例に示すように(複雑です)
    stream()メソッドにより,データパケットを容易に行うことができる.
    List<String> stringList = Arrays.asList("월","화","수","목","금");
    		
    Iterator<String> iterator = stringList.iterator();
    		
    	while(iterator.hasNext()) {	
    			
    		System.out.println("iterator.next() : " + iterator.next());	
    
    		iterator.remove();
    
    	}
    反復メソッドの意味は次のとおりです.
    .hasNext()-->次の値が見つかるまでループを続けます
    .next()-->次のデータを返します.
    .remove()-->next()メソッドで呼び出されたデータを削除
    結果値:最初に表示された月を除外します.next()メソッドで返される「和」、「数」、「木」、「金」を削除します.