如何解决如何在Java中使用默认值生成类型为枚举的Streams数组
我的枚举如下
enum color
{
red,blue,green;
}
我必须生成一个颜色数组,默认颜色为蓝色
在旧的java(
color[] myArray = new color[mySize];
for(int iter=0; iter<myArray.length; iter++)
myArray[iter] = color.blue;
如何使用Java Array Generator流代码执行此操作?
解决方法
您的迭代版本听起来不错,我建议您保留该版本。但是,由于您对等效的流版本感到好奇,因此就在这里。
class MainViewModel : ViewModel() {
private var list: ArrayList<ModelDialogOption>? = null
val userMutableLiveData = MutableLiveData<ArrayList<ModelDialogOption>>()
init {
populateList()
userMutableLiveData.value = list!!
}
private fun populateList() {
list = ArrayList()
list!!.add(ModelDialogOption("Prefer not to say",false))
list!!.add(ModelDialogOption("16-39",false))
list!!.add(ModelDialogOption("40-59",true))
list!!.add(ModelDialogOption("60+",false))
}
fun updateItem(position:Int){
val itemToUpdate = list!!.get(position)
itemToUpdate.selected = !itemToUpdate.selected!!
list!![position] = itemToUpdate
}
fun flushItems(){
userMutableLiveData.value = list!!
}
您必须使用class MyDialogFragment : DialogFragment(),RecyclerDialogOptionsItem.AdapterListener {
private val viewModel: MainViewModel by activityViewModels()
private lateinit var adapter: GroupAdapter<GroupieViewHolder>
var selectedPosition = -1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NO_TITLE,R.style.AppTheme_Dialog_Custom)
}
override fun onCreateView(
inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_dialog,container,false)
}
override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
super.onViewCreated(view,savedInstanceState)
rvOptions.layoutManager = LinearLayoutManager(activity)
adapter = GroupAdapter()
rvOptions.adapter = adapter
ivClose.setOnClickListener {
this.dismiss()
}
initViewModel()
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
viewModel.flushItems()
}
private fun initViewModel() {
viewModel.userMutableLiveData.observe(this,Observer { list ->
for (i in list!!) {
adapter.add(
RecyclerDialogOptionsItem(
this@MyDialogFragment,i,this@MyDialogFragment
)
)
}
})
}
override fun onClickItem(position: Int) {
selectedPosition = position
adapter.notifyDataSetChanged()
viewModel.updateItem(position)
Log.i("clicked","position: $position")
}
,在每次迭代中创建默认的 $('.vall-txt-body strong').contents().unwrap();
$('.vall-txt-body p').contents().unwrap();
$('.vall-txt-body i').contents().unwrap();
$('.vall-txt-body a').contents().unwrap();
$('.vall-txt-body div').contents().unwrap();
$('.vall-txt-body img').contents().unwrap();
。最后,使用color[] myArray = IntStream.range(0,size)
.mapToObj(unused -> color.blue)
.toArray(color[]::new);
创建一个枚举数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。