在Kotlin for Android中使用Pair时的性能

我一直在使用ViewPager的以下适配器类。 它从Java转换为Kotlin。

 class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) { private val mFragmentList = ArrayList() private val mFragmentTitleList = ArrayList() override fun getItem(position: Int): Fragment { return mFragmentList[position] } override fun getCount(): Int { return mFragmentList.size } fun addFragment(fragment: Fragment, title: String) { mFragmentList.add(fragment) mFragmentTitleList.add(title) } override fun getPageTitle(position: Int): CharSequence? { return mFragmentTitleList[position] } } 

为了尽量减少我尝试使用Kotlin Pair线的数量。 并将上面的实现转换为以下内容。 现在我很好奇这个实现使用Pair的性能。 我可以得到一个合乎逻辑的解释吗?

 class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) { private val pairs = ArrayList<Pair>() fun addFragment(fragment: Fragment, title: String) = pairs.add(Pair(fragment, title)) override fun getItem(position: Int): Fragment = pairs[position].first override fun getCount(): Int = pairs.size override fun getPageTitle(position: Int): CharSequence? = pairs[position].second } 

使用一个Pair明显提高了可读性和可维护性,所以去那。

但是,如果没有约束条件,你需要通过索引访问元素( getItem(position: Int) ),我甚至会进一步使用Map来代替。

 private val fragmentToTitleMap = HashMap() 

添加到:

 fragmentToTitleMap[someFragment] = "someTitle" 

不要过多地考虑微观优化。 在这种情况下不应该有明显的区别,因为你不会有+100片段。